captureEvent static method

void captureEvent({
  1. required String connectionId,
  2. required WebSocketEventType type,
  3. dynamic data,
  4. String? error,
})

Capture WebSocket event

Implementation

static void captureEvent({
  required String connectionId,
  required WebSocketEventType type,
  dynamic data,
  String? error,
}) {
  if (!_enabled) return;

  final event = WebSocketEvent(
    id: DateTime.now().microsecondsSinceEpoch.toString(),
    connectionId: connectionId,
    type: type,
    data: data,
    timestamp: DateTime.now(),
    error: error,
  );

  final currentEvents = List<WebSocketEvent>.from(_allEvents.value);
  currentEvents.add(event);
  _trimAllEventsList(currentEvents);
  // Defer update to avoid setState during build phase
  Future.microtask(() {
    _allEvents.value = currentEvents;
  });

  final currentConnections = Map<String, WebSocketConnection>.from(_connections.value);
  final connection = currentConnections[connectionId];
  if (connection != null) {
    connection.addEvent(event);
    _trimConnectionEvents(connection);
    // Defer update to avoid setState during build phase
    Future.microtask(() {
      _connections.value = currentConnections;
    });
  }
}