removeClient method
Remove a client from the adapter.
Implementation
@override
void removeClient(SocketClient client) {
_clients.remove(client.id);
final user = client.authenticatedUser;
if (user != null && user.getAuthIdentifier() != null) {
_userClientMap.remove(user.getAuthIdentifierName());
}
// Remove from all rooms
for (final room in client.rooms) {
_rooms[room]?.remove(client);
if (_rooms[room]?.isEmpty ?? false) {
_rooms.remove(room);
}
}
// Remove from all event subscriptions
for (final subscribers in _eventSubscribers.values) {
subscribers.remove(client);
}
_eventSubscribers.removeWhere((_, subscribers) => subscribers.isEmpty);
}