batchEvent method

Future<void> batchEvent(
  1. WebSocketEvent event, {
  2. dynamic filter(
    1. WebSocketContext socket
    )?,
  3. bool notify = true,
})

Slates an event to be dispatched.

Implementation

Future<void> batchEvent(WebSocketEvent event,
    {Function(WebSocketContext socket)? filter, bool notify = true}) async {
  // Default implementation will just immediately fire events
  for (var client in _clients) {
    dynamic result = true;
    if (filter != null) {
      result = await filter(client);
    }
    if (result == true) {
      client.channel.sink.add((serializer ?? json.encode)(event.toJson()));
    }
  }

  if (synchronizationChannel != null && notify != false) {
    synchronizationChannel!.sink.add(event);
  }
}