disconnect method
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());
}