Skip to main content
Version: 8.3 Beta 🚧

system.eventstream.publishEvent

This function is used in Python Scripting.

Description​

Publishes a message to a Gateway Event Source. You can publish a message to the local Gateway, or a remote Gateway.

Client Permission Restrictions​

This scripting function has no Client Permission restrictions.

Syntax​

system.eventstream.publishEvent(project, path, message, acknowledge, [gatewayId])

Parameters​

TypeParameterDescription
StringprojectThe project the event stream(s) belong to.
StringpathThe path to the event stream resource.
StringmessageThe string message to send.
BooleanacknowledgeIf True, further messages will be blocked until the receiving Gateway Event Listener source finishes processing the message. If False, further messages will be blocked until the Gateway Event Listener source receives the message.
StringgatewayIdThe Gateway ID of the remote Gateway you want to send the message to. Not specifying a remote Gateway will send the message to the specified event stream path and project on the local Gateway. This parameter is optional.

Returns​

PyDictionary - A dictionary of key and value status pairs resulting from publishing the specified event stream. Keys returned include:

  • errorMessage
  • stage
  • status

Scope​

Gateway

Code Examples​

Example #1
# Sends the specified message to the "listener" event stream located within the "event-stream" project.
system.eventstream.publishEvent("event-stream", "listener", "I am a message!", True)
Example #2
# Parses the message payload as a JSON object using the jsonEncode function, after which publishEvent will then send the message to the project called "myProject".
project = "myProject"
path = "myEventStream"
rawMessage = {'value': self.getSibling("TextField").props.text}
acknowledge = True
gatewayId = None

message = system.util.jsonEncode(rawMessage)
system.eventstream.publishEvent(project, path, message, acknowledge, gatewayId)