disconnect method

Future<void> disconnect()

Disconnects from the WebSocket server.

Implementation

Future<void> disconnect() async {
  if (_state == WebSocketState.closed || _state == WebSocketState.failed) {
    return;
  }

  _updateState(WebSocketState.closing);

  // Stop timers
  _connectionTimer?.cancel();
  _heartbeatTimer?.cancel();

  // Close channel
  await _channel?.sink.close();
  _channel = null;

  _updateState(WebSocketState.closed);
  _eventController.add(WebSocketEvent.disconnected());
}