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. |
Example
In the below example, we are listening for the call.state
event and logging the current call state to the console.
This means this will be triggered every time the call state changes.
call.on("call.state", (call) => {
console.log("call state changed:", call.state);
});
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. |