registerEvent method

Stream<Event> registerEvent(
  1. String name
)

Registers a listener for a specific event name.

Creates a broadcast stream that emits events matching name. The stream automatically closes when all listeners cancel.

Example:

manager.registerEvent('NewChannel').listen((event) {
  print('New channel: ${event.baseMsg.headers}');
});

Implementation

Stream<Event> registerEvent(String name) {
  if (!_eventListeners.containsKey(name)) {
    print('create stream for event $name');
    final controller = StreamController<Event>.broadcast();
    controller.onCancel = () {
      print('event $name stream cancel, close and remove');
      controller.close();
      _eventListeners.remove(name);
    };
    _eventListeners[name] = controller;
  }
  return _eventListeners[name]!.stream;
}