ApiaryActive
Try: pause · settings · learn · wipe
← Community / Reading Room
BB
browser-apis · 2 min read

browser broadcast channel

Imagine you're a busy bee, collecting nectar from one flower to another. You need to keep your fellow bees informed about the best sources of nectar in the…

Imagine you're a busy bee, collecting nectar from one flower to another. You need to keep your fellow bees informed about the best sources of nectar in the area. But how do you communicate without flying back and forth between flowers? That's where the Browser Broadcast Channel comes in – a powerful tool for cross-tab communication that doesn't require a server.

The Technique

The Browser Broadcast Channel is a W3C standard (Web API) that allows web applications to send messages to other windows or tabs of the same origin. This means you can share data between pages, even if they're not in the same frame or tab. It's like sending a message to your fellow bees in the hive, "Hey, there's a rich source of nectar over here!"

To use the Browser Broadcast Channel, you'll need to:

  1. Create an instance of BroadcastChannel with a unique name.
  2. Use the postMessage() method to send messages to other windows or tabs.

Here's some sample code in TypeScript:

const channel = new BroadcastChannel('nectar-channel');

// Send a message to all connected clients
channel.postMessage({
  type: 'NEC_TAR',
  data: {
    location: 'flower-123',
    amount: 100,
  },
});

Concrete Examples

Let's dive into some concrete examples of how you can use the Browser Broadcast Channel.

Example 1: Real-time Stock Updates

Imagine a stock ticker that needs to update in real-time. You can use the Browser Broadcast Channel to send updates from one tab to another, without requiring a server round-trip.

// Send an update to all connected clients
channel.postMessage({
  type: 'STOCK_UPDATE',
  data: {
    symbol: 'AAPL',
    price: 123.45,
  },
});

Example 2: Collaborative Editing

Imagine a collaborative editing tool that needs to sync changes between multiple users. You can use the Browser Broadcast Channel to send updates from one user's window to another.

// Send an update to all connected clients
channel.postMessage({
  type: 'EDIT_UPDATE',
  data: {
    text: 'Hello, world!',
  },
});

Example 3: Game State Synchronization

Imagine a multiplayer game that needs to synchronize game state between multiple users. You can use the Browser Broadcast Channel to send updates from one user's window to another.

// Send an update to all connected clients
channel.postMessage({
  type: 'GAME_STATE_UPDATE',
  data: {
    playerPosition: [100, 200],
  },
});

When NOT to Use It

While the Browser Broadcast Channel is a powerful tool for cross-tab communication, there are some cases where you might not want to use it:

  • Security: If you're dealing with sensitive data that shouldn't be shared between tabs or windows, consider using a more secure approach.
  • Scalability: If your application has thousands of users and needs to handle high volumes of messages, the Browser Broadcast Channel may not be the best choice.

Related Apiary Lessons

If you're new to web development, check out our lessons on:

Conclusion

The Browser Broadcast Channel is a powerful tool for cross-tab communication that doesn't require a server. With its help, you can build real-time applications that sync state between multiple windows or tabs of the same origin.

As a busy bee, remember: "Communication is the honeycomb of collaboration!"

Frequently asked
What is browser broadcast channel about?
Imagine you're a busy bee, collecting nectar from one flower to another. You need to keep your fellow bees informed about the best sources of nectar in the…
What should you know about the Technique?
The Browser Broadcast Channel is a W3C standard (Web API) that allows web applications to send messages to other windows or tabs of the same origin. This means you can share data between pages, even if they're not in the same frame or tab. It's like sending a message to your fellow bees in the hive, "Hey, there's a…
What should you know about concrete Examples?
Let's dive into some concrete examples of how you can use the Browser Broadcast Channel.
What should you know about example 1: Real-time Stock Updates?
Imagine a stock ticker that needs to update in real-time. You can use the Browser Broadcast Channel to send updates from one tab to another, without requiring a server round-trip.
What should you know about example 2: Collaborative Editing?
Imagine a collaborative editing tool that needs to sync changes between multiple users. You can use the Browser Broadcast Channel to send updates from one user's window to another.
References & sources
  1. Apiary Reading RoomOpen, cited knowledge base — funded to keep bee & practical research free.
From the Apiary Reading Room. Opinion & editorial — not financial advice. We don't overclaim.
More from the Reading Room