## Constructors ### constructor • **new Client**(pubSubOptions) Creates a new PubSub client. #### Parameters | Name | Type | Description | |:|:-|:-| | pubSubOptions | Object | - | | pubSubOptions.project | string | SignalWire project id, e.g. a10d8a9f-2166-4e82-56ff-118bc3a4840f | | pubSubOptions.token | string | SignalWire API token | | pubSubOptions.debug? | Object | - | | pubSubOptions.debug.logWsTraffic? | boolean | If true, logs all WebSocket traffic. Default is false. | #### Example js import { PubSub } from @signalwire/realtime-api; const pubSubClient = new PubSub.Client({ project: , token: , }); ## Methods ### disconnect ▸ **disconnect**(): void Disconnects this client. The client will stop receiving events and you will need to create a new instance if you want to use it again. #### Returns void #### Example js client.disconnect(); ### off ### on ### once ### publish ▸ **publish**(params): Promise Publish a message into the specified channel. #### Parameters | Name | Type | Description | |:--|:-|:--| | params | Object | - | | params.channel | string | Channel in which to send the message. | | params.content | any | The message to send. This can be any JSON-serializable object. | | params.meta? | Record | Metadata associated with the message. There are no requirements on the content of metadata. | #### Returns Promise #### Examples Publishing a message as a string: js await pubSubClient.publish({ channel: my-channel, content: Hello, world., }); Publishing a message as an object: js await pubSubClient.publish({ channel: my-channel, content: { field_one: value_one, field_two: value_two, }, }); ### removeAllListeners ### subscribe ▸ **subscribe**(channels): Promise 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](./pubsub-client.mdx#unsubscribe). #### Parameters | Name | Type | Description | |:--|:--|:-| | channels | string \| string[] | The channels to subscribe to, either in the form of a string (for one channel) or an array of strings. | #### Returns Promise #### Example js const pubSubClient = new PubSub.Client({ project: , token: , }); await pubSubClient.subscribe(my-channel); await pubSubClient.subscribe([chan-2, chan-3]); ### unsubscribe ▸ **unsubscribe**(channels): Promise List of channels from which you want to unsubscribe. #### Parameters | Name | Type | Description | |:--|:--|:--| | channels | string \| string[] | The channels to unsubscribe from, either in the form of a string (for one channel) or an array of strings. | #### Returns Promise #### Example js await pubSubClient.unsubscribe(my-channel); await pubSubClient.unsubscribe([chan-2, chan-3]); ## Events ### message • **message**(message) A new message has been received. #### Parameters | Name | Type | Description | |:-|:|:| | message | [PubSubMessage](./pubsub-pubsubmessage.md) | The message that has been received. |