This is a client-side library designed to send and receive messages between different podlets in a layout.
To install:
npm install @podium/browser
Include the library in your client-side application.
import Podium from '@podium/browser';
Use the MessageBus to send messages between podlets in a layout.
// In podlet A. Broadcast a message.
import { MessageBus } from '@podium/browser';
const messageBus = new MessageBus();
messageBus.publish('search', 'query', 'couch');
// In podlet B. Subscribe to a message.
import { MessageBus } from '@podium/browser';
const messageBus = new MessageBus();
messageBus.subscribe('search', 'query', (event) => {
console.log(event.payload);
});
Cross podlet communication and message passing. Create a new MessageBus instance to use the API.
import { MessageBus } from '@podium/browser';
const messageBus = new MessageBus();
Publish a message for a channel and topic combination. Returns the Event
object passed to subscribers.
This method takes the following arguments:
option | default | type | required | details |
---|---|---|---|---|
channel | null |
string |
true |
Name of the channel |
topic | null |
string |
true |
Name of the topic |
payload | null |
any | false |
The payload for the event |
Examples:
messageBus.publish('search', 'query', 'laptop');
messageBus.publish('auth', 'logout');
Subscribe to messages for a channel and topic combination.
This method takes the following arguments:
option | default | type | required | details |
---|---|---|---|---|
channel | null |
string |
true |
Name of the channel |
topic | null |
string |
true |
Name of the topic |
callback | null |
Function |
true |
Callback function to be invoked. Receives an event object |
Example:
messageBus.subscribe('channel', 'topic', (event) => {
console.log(event.payload);
});
Unsubscribe to events for a channel and topic combination.
This method takes the following arguments:
option | default | type | required | details |
---|---|---|---|---|
channel | null |
string |
true |
Name of the channel |
topic | null |
string |
true |
Name of the topic |
callback | null |
Function |
true |
Callback function to remove. |
Example:
function cb(event) {
console.log(event.payload);
}
messageBus.subscribe('channel', 'topic', cb);
messageBus.unsubscribe('channel', 'topic', cb);
Get the latest event for a channel and topic combination.
This method takes the following arguments:
option | default | type | required | details |
---|---|---|---|---|
channel | null |
string |
true |
Name of the channel |
topic | null |
string |
true |
Name of the topic |
Returns an array of the 10 latest events for a channel and topic combination. The array is ordered such that the the latest/newest events is at the front of the array.
This method takes the following arguments:
option | default | type | required | details |
---|---|---|---|---|
channel | null |
string |
true |
Name of the channel |
topic | null |
string |
true |
Name of the topic |
Example:
const events = messageBus.log('channel', 'topic');
events.forEach((event) => {
console.log(event.payload);
});