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.