Client

PubSub.Client

Constructors

constructor

new Client(pubSubOptions)

Creates a new PubSub client.

Parameters

NameTypeDescription
pubSubOptionsObject-
pubSubOptions.projectstring

SignalWire project id, e.g. a10d8a9f-2166-4e82-56ff-118bc3a4840f

pubSubOptions.tokenstring

SignalWire API token

Example

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

const pubSubClient = new PubSub.Client({
  project: '<project-id>',
  token: '<api-token>'
})

Methods

off

off<T>(event, fn?): EmitterContract<PubSubClientApiEvents>

Type parameters

NameType
Textends keyof PubSubClientApiEvents

Parameters

NameType
eventT
fn?(...args: ArgumentMap<PubSubClientApiEvents>[Extract<T, keyof PubSubClientApiEvents>]) => void

Returns

EmitterContract<PubSubClientApiEvents>


on

on<T>(event, fn): EmitterContract<PubSubClientApiEvents>

Type parameters

NameType
Textends keyof PubSubClientApiEvents

Parameters

NameType
eventT
fn(...args: ArgumentMap<PubSubClientApiEvents>[Extract<T, keyof PubSubClientApiEvents>]) => void

Returns

EmitterContract<PubSubClientApiEvents>


once

once<T>(event, fn): EmitterContract<PubSubClientApiEvents>

Type parameters

NameType
Textends keyof PubSubClientApiEvents

Parameters

NameType
eventT
fn(...args: ArgumentMap<PubSubClientApiEvents>[Extract<T, keyof PubSubClientApiEvents>]) => void

Returns

EmitterContract<PubSubClientApiEvents>


publish

publish(params): Promise<void>

Publish a message into the specified channel.

Parameters

NameTypeDescription
paramsObject-
params.channelstring

Channel in which to send the message.

params.contentany

The 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:

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

Publishing a message as an object:

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

removeAllListeners

removeAllListeners<T>(event?): EmitterContract<PubSubClientApiEvents>

Type parameters

NameType
Textends keyof PubSubClientApiEvents

Parameters

NameType
event?T

Returns

EmitterContract<PubSubClientApiEvents>


subscribe

subscribe(channels): Promise<void>

List of channels for which you want to receive messages.

Note that the subscribe function is idempotent, and calling it again with a different set of channels will not unsubscribe you from the old ones. To unsubscribe, use unsubscribe.

Parameters

NameTypeDescription
channelsstring | string[]

the channels to subscribe to, either in the form of a string (for one channel) or an array of strings.

Returns

Promise<void>

Example

const pubSubClient = new PubSub.Client({
  project: '<project-id>',
  token: '<api-token>'
})

await pubSubClient.subscribe("my-channel")
await pubSubClient.subscribe(["chan-2", "chan-3"])

unsubscribe

unsubscribe(channels): Promise<void>

List of channels from which you want to unsubscribe.

Parameters

NameTypeDescription
channelsstring | string[]

the channels to unsubscribe from, either in the form of a string (for one channel) or an array of strings.

Returns

Promise<void>

Example

await pubSubClient.unsubscribe("my-channel")
await pubSubClient.unsubscribe(["chan-2", "chan-3"])