listenEvent

declare function listenEvent<T extends unknown = any>(clientId: string, topicName: string, fn: (data: T) => void): () => void;

Subscribes to a custom event on the swarm bus service and executes a callback when the event is received.

This function sets up a listener for events with a specified topic on the swarm's bus service, invoking the provided callback with the event's payload when triggered. It is wrapped in beginContext for a clean execution environment, logs the operation if enabled, and enforces restrictions on reserved topic names (defined in DISALLOWED_EVENT_SOURCE_LIST). The callback is queued to ensure sequential processing of events. The function supports a wildcard client ID ("*") for listening to all clients or validates a specific client session. It returns an unsubscribe function to stop listening.

Parameter Description
clientId The unique identifier of the client session, or "*" for all clients.
topicName The name of the event topic to listen for.
fn Callback function executed when the event is received.