Client
You can use instances of this class to send or receive messages.
Example
import { Messaging } from "@signalwire/realtime-api";
const client = new Messaging.Client({
project: "<project-id>",
token: "<api-token>",
topics: ["office"],
});
client.on("message.received", (message) => {
console.log("message.received", message);
});
await client.send({
topic: "office",
from: "+1xxx",
to: "+1yyy",
body: "Hello World!"
});
Constructors
constructor
• new Client(opts
)
Parameters
Name | Type | Description |
---|---|---|
opts | Object | - |
opts.topics | string [] | SignalWire topics, e.g. ['home', 'office']. Previously known as "context" . |
opts.project | string | SignalWire Project ID, e.g. a10d8a9f-2166-4e82-56ff-118bc3a4840f . |
opts.token | string | SignalWire API token, e.g. PT9e5660c101cd140a1c93a0197640a369cf5f16975a0079c9 . |
opts.debug? | Object | - |
opts.debug.logWsTraffic? | boolean | If true , logs all WebSocket traffic. Default is false . |
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
client.disconnect();
off
▸ off(event
, fn?
)
Remove an event handler.
Parameters
Name | Type | Description |
---|---|---|
event | string | Name of the event. See Events for the list of available events. |
fn? | Function | An event handler which had been previously attached. |
on
▸ on(event
, fn
)
Attaches an event handler to the specified event.
Parameters
Name | Type | Description |
---|---|---|
event | string | Name of the event. See Events for the list of available events. |
fn | Function | An event handler. |
once
▸ once(event
, fn
)
Attaches an event handler to the specified event. The handler will fire only once.
Parameters
Name | Type | Description |
---|---|---|
event | string | Name of the event. See Events for the list of available events. |
fn | Function | An event handler. |
removeAllListeners
▸ removeAllListeners(event?
)
Detaches all event listeners for the specified event.
Parameters
Name | Type | Description |
---|---|---|
event? | string | Name of the event (leave this undefined to detach listeners for all events). See Events for the list of available events. |
send
▸ send(params
): Promise<MessagingSendResult>
- See MessagingSendResult
Send an outbound SMS or MMS message.
Parameters
Name | Type | Description |
---|---|---|
params | Object | - |
params.body? | string | The content of the message. Optional if media is present. |
params.topic? | string | Inbound events for the message will be received on this topic. If not specified, a default topic will be used. Previously known as "context" . |
params.from | string | The phone number to place the message from. Must be a SignalWire phone number or short code that you own. |
params.media? | string [] | Array of URLs to send in the message. Optional if body is present. |
params.region? | string | Region of the world to originate the message from. A default value is picked based on account preferences or device location. |
params.tags? | string [] | Array of strings to tag the message with for searching in the UI. |
params.to | string | The phone number to send to. |
Returns
Promise<MessagingSendResult>
- See MessagingSendResult
Asynchronously returns a result object.
Example
Send a message.
try {
const sendResult = await client.send({
from: "+1xxx",
to: "+1yyy",
body: "Hello World!",
});
console.log("Message ID: ", sendResult.messageId);
} catch (e) {
console.error(e.message);
}
Events
message.received
• message.received(message
)
Emitted whenever a message is received. Your event handler receives a message object. Example:
const client = new Messaging.Client(...)
client.on('message.received', (message) => {
console.log('Message received:', message)
// message.from
// message.to
// message.body
// ...
})
Parameters
Name | Type | Description |
---|---|---|
message | MessageContract | The message that has been received. |
message.updated
• message.updated(message
)
Emitted when the status of a message is updated. You can use this event to track the different stages that an outbound message goes through for delivery. Example:
const client = new Messaging.Client(...)
client.on('message.updated', (message) => {
console.log('Message updated:', message)
// message.from
// message.to
// message.direction
// message.state
// ...
})
client.send(...)
Parameters
Name | Type | Description |
---|---|---|
message | MessageContract | The message. |