onBroadcastMessage static method

Stream onBroadcastMessage({
  1. String name = 'fcm',
})

Returns a stream broadcasting the browser's fcm broadcast channel changes.

Implementation

static Stream<dynamic> onBroadcastMessage({String name = 'fcm'}) {
  StreamController<dynamic>? controller;

  final web.BroadcastChannel channel = web.BroadcastChannel(name);

  controller = StreamController(
    onListen: () {
      void fn(web.Event e) =>
          controller?.add((e as web.MessageEvent).data.dartify());
      channel.onmessage = fn.toJS;
    },
    onCancel: () => channel.onmessage = null,
  );

  return controller.stream;
}