broadcastMessage method

  1. @override
Future<void> broadcastMessage(
  1. Message message, {
  2. List<String>? excludeClientIds,
})
override

Broadcast a message to all subscribed clients

Implementation

@override
Future<void> broadcastMessage(
  Message message, {
  List<String>? excludeClientIds,
}) async {
  final documentId = message.documentId;
  final sessions = List.of(_sessions.values);

  for (final session in sessions) {
    final isExcluded = excludeClientIds?.contains(session.id) ?? false;
    final isSubscribed = session.isSubscribedTo(documentId);

    if (!isExcluded && isSubscribed) {
      await session.sendMessage(message);
    }
  }
}