Skip to main content

Client

A PubSub client is used to listen for events on a channel and publish messages to a channel.

PubSub Client

Setting up a PubSub Client

To create a PubSub client, you will first need to create a SignalWire Realtime-Client. After the SignalWire Client is created, you can access the PubSub client using the pubSub namespace.

import { SignalWire} from "@signalwire/realtime-api";

const client = await SignalWire({ project: "ProjectID Here", token: "Token Here" })

const pubSubClient = client.pubSub;

Methods

listen

listen({ event: Callback }): Promise<PubSub Events>

Listen for events on the specified channel.

Parameters

NameTypeDescription
paramsObjectObject containing the parameters of the method.
params.channelsstring[]List of channels to listen to.
params.EVENTstringThe event to listen to. List of events can be found here.
Example event: onMessageReceived)

Returns

Promise<PubSubEvents>

A promise that resolves to a PubSubEvents object that you can use to view the current state or results of the event.

Example

import { SignalWire} from "@signalwire/realtime-api";

const client = await SignalWire({ project: "ProjectID Here", token: "Token Here" })

const pubSubClient = client.pubSub;

await pubSubClient.listen({
channels: ["my-channel"],
onMessageReceived: (message) => {
console.log(message);
}
});

In this example:

  • Import the SignalWire module and initialize a new SignalWire client using your project ID and token.
  • Access the PubSub client from the initialized SignalWire client.
  • Subscribe to the my-channel channel and set up a listener for incoming messages.
  • Log received messages to the console.

publish

publish(params): Promise<void>

Publish a message into the specified channel.

Parameters

NameTypeDescription
paramsObject-
params.channelstringChannel in which to send the message.
params.contentanyThe message to send. This can be any JSON-serializable object.
params.meta?Record<any, any>Metadata associated with the message. There are no requirements on the content of metadata.

Returns

Promise<void>

Examples

Publishing a message as a string:

import { SignalWire } from '@signalwire/realtime-api'

const client = await SignalWire({ project: "ProjectID Here", token: "Token Here" })

const pubSubClient = client.pubSub;

await pubSubClient.publish({
channel: "my-channel",
content: "Hello, world."
});

Publishing a message as an object:

import { SignalWire } from '@signalwire/realtime-api'

const client = await SignalWire({ project: "ProjectID Here", token: "Token Here" })

const pubSubClient = client.pubSub;

await pubSubClient.publish({
channel: "my-channel",
content: {
field_one: "value_one",
field_two: "value_two"
}
});

Events

onMessageReceived

client.pubSub.listen({ onMessageReceived: Callback })

Emitted when a message is received on a channel. Your event handler will be called with an instance of PubSubMessage.

Parameters

NameTypeDescription
messagePubSubMessageThe message that has been received.