disconnect method

Future<void> disconnect()

Disconnect from the remote session.

Implementation

Future<void> disconnect() async {
  _heartbeatTimer?.cancel();
  _reconnectTimer?.cancel();

  await _socket?.close();
  _socket = null;

  _setState(RemoteSessionState.disconnected);

  if (_sessionInfo != null) {
    _eventController.add(
      RemoteDisconnected(_sessionInfo!.sessionId, 'User disconnected'),
    );
  }

  // Cancel pending requests.
  for (final entry in _pendingRequests.entries) {
    entry.value.completeError(StateError('Disconnected'));
  }
  _pendingRequests.clear();
}