Skip to content

pavelstencl/broadcasterJS

Repository files navigation

Broadcaster: Cross Window Serverless Messaging System

npm version

Small, zero-dependency package for managing communication between different browsing contexts, like tabs, windows, iFrames, workers, etc.. It adds extra layer over BroadcastChannel with unified error management and context awareness.

Broadcaster Example

This package not only sends messages to different browser windows or tabs, but it keeps track about all Broadcaster instances across browsing context. In every moment you can see current instance state of any Broadcaster. You can also enhance state with your own metadata. Under the hood, it utilizes the BroadcastChannel API, yet it can be easily replaced with any alternative communication strategy.

Broadcaster Monorepo Structure

Look for other packages in packages folder.

Key Features

  • 🚌 BUS between browsing contexts
    Allows to send messages between different browsing contexts and sync Broadcaster instances state.
  • Serverless
    By default, the Broadcaster employs the BroadcastChannel API as its primary bridge interface. This API enables fundamental communication between different browsing contexts such as windows and tabs, eliminating the necessity for a server.
  • 📝 Context aware
    Each instance of the Broadcaster maintains awareness of other instances throughout their lifecycle. It retains essential information and metadata, making this data accessible to every Broadcaster instance subscribed to the same channel.
  • 💪 Accessible on most modern browsers and Node.JS
    In 2023 all main browsers supports BroadcastChannel API (Most recently Safari v 15.4) - see caniuse
  • ⚙️⚙️⚙️ Modular
    Given Broadcaster's significant dependence on the BroadcastChannel API, users have the flexibility to alter the communication protocol by simply replacing the Bridge instance.
  • Resilient
    Errors identified during the broadcasting phase are transferred into a separate error stream, allowing the channel to remain open for additional incoming messages.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published