connect method
Future<void>
connect({
- String? defaultProjectName,
- int? port,
- HostHandle? hostHandle,
- Duration? timeOut,
- String? initHost,
- DataFormatVersions? version,
- ValueChanged<
Socket> ? connectSuccess, - String? projectName,
- 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;
}
}