disconnect method

void disconnect({
  1. String? endpointSocket,
})

Implementation

void disconnect({String? endpointSocket}) {
  if (endpointSocket != null) {
    leaveRoom(endpointSocket: endpointSocket);
    _cancelReconnectTimer(endpointSocket);
    _subscriptions[endpointSocket]?.cancel();
    _channels[endpointSocket]?.sink.close();
    _channels.remove(endpointSocket);
    _subscriptions.remove(endpointSocket);
    _reconnectAttempts.remove(endpointSocket);
    _tokens.remove(endpointSocket);
    wSocketDataProvider.setServerStatus(
        endpointSocket: endpointSocket,
        serverStatus: SocketServerStatus.offline);
    return;
  }

  for (final endpoint in _channels.keys.toList()) {
    disconnect(endpointSocket: endpoint);
  }
}