disconnect method

  1. @override
Future<void> disconnect([
  1. int? code,
  2. String? reason
])
override

Closes the WebSocket connection

Implementation

@override
Future<void> disconnect([int? code, String? reason]) async {
  if (_currentState == WebSocketState.disconnected) {
    return;
  }

  _updateState(WebSocketState.disconnecting);
  _connectionTimeoutTimer?.cancel();

  try {
    await _channelSubscription?.cancel();
    await _channel?.sink.close(code, reason);
  } catch (error) {
    _errorController.add(error);
  } finally {
    _updateState(WebSocketState.disconnected);
  }
}