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