disconnect method
Implementation
Future<bool> disconnect() async {
if (_socket == null || !_isConnect) {
return true;
}
void onDisCon(
Completer completer,
bool result,
) {
if (!completer.isCompleted) {
_close();
_sourcePort = null;
completer.complete(result);
}
}
final completer = Completer<bool>();
try {
_socket?.done.then(
(value) {
onDisCon(completer, true);
},
);
await _socket?.flush();
await _socket?.close();
Future.delayed(
const Duration(seconds: 2),
() {
onDisCon(completer, true);
},
);
} catch (e) {
log(
'netConn disconnect error : ${e.toString()}',
);
onDisCon(completer, false);
}
return completer.future;
}