connect method

Future<void> connect({
  1. String? defaultProjectName,
  2. int? port,
  3. HostHandle? hostHandle,
  4. Duration? timeOut,
  5. String? initHost,
  6. DataFormatVersions? version,
  7. ValueChanged<Socket>? connectSuccess,
  8. String? projectName,
  9. required List<ServerMessageHandle> extend,
})

连接到idea插件

Implementation

Future<void> connect(
    {String? defaultProjectName,
    int? port,
    HostHandle? hostHandle,
    Duration? timeOut,
    String? initHost,
    DataFormatVersions? version,
    ValueChanged<Socket>? connectSuccess,
    String? projectName,
    required List<ServerMessageHandle> extend}) async {
  try {
    String? pName = projectName;
    dataFormatVersions = version ?? DataFormatVersions.ideaPlugin;
    String v = '0.0';
    final infos = await PackageInfo.fromPlatform();
    if (pName == null) {
      pName = infos.appName;
      if (pName.isEmpty) {
        pName = defaultProjectName ?? 'Flutter Project';
      }
    }
    v = infos.version;
    pName = '$pName($v)';
    appProjectName = pName;
    String ip = await IpUtil().checkConnectServerAddress(port ?? serverPort,
        conectSuccess: (s) {
      socket = s;
      connectSuccess?.call(s);
      _startPing();
    }, hostHandle: hostHandle, timeOut: timeOut, initHost: initHost);
    if (socket != null && ip.isNotEmpty) {
      socket!.listen((event) {
        var str = utf8.decode(event..buffer.asByteData());
        responseHandle(str, extend);
      }, onDone: () {
        _closePing();
        ddCheckPluginLog('Connection disconnected');
      }, onError: (e) {
        _closePing();
        ddCheckPluginLog("An error occurred : $e");
      });
    } else {}
  } on ConnectException {
    rethrow;
  }
}