disconnect method

Future<bool> disconnect()

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;
}