Node.js - topic.publish()
Publish an event (push based message) to a topic.
import { topic } from '@nitric/sdk'
const updates = topic('updates').for('publishing')
await updates.publish({
payload: {
something: 'amazing happened',
},
})
Parameters
- Name
event
- Required
- Required
- Type
- NitricEvent
- Description
The event to publish to the topic.
- Name
id
- Optional
- Optional
- Type
- string
- Description
Unique ID to apply to the event.
- Name
payload
- Required
- Required
- Type
- Record<string, any>
- Description
Payload to send with the event.
- Name
payloadType
- Optional
- Optional
- Type
- string
- Description
A hint to the type of payload supplied.
- Name
opts
- Optional
- Optional
- Type
- object
- Description
Additional options when publishing a message to the topic.
- Name
delay
- Optional
- Optional
- Type
- number
- Description
A number of seconds to delay the delivery of this message.
Examples
Publish a message
Publishing messages to a topic will push a copy of the message to each of the topic's subscribers. By default, delivery occurs without a delay.
import { topic } from '@nitric/sdk'
const updates = topic('updates').for('publishing')
await updates.publish({
payload: {
something: 'amazing happened',
},
})
Delaying message delivery
You can delay the delivery of messages sent to a topic. The current maximum delay is 7 days (604800 seconds).
import { topic } from '@nitric/sdk'
const updates = topic('updates').for('publishing')
const event = { payload: { example: 'delayed' } }
// 10 minute delay
await updates.publish(event, { delay: 600 })
Notes
- If an id is not supplied with an event a UUID(v4) will be generated for you.
- A function may subscribe to OR publish to a topic but not both.