Overview
This node acts as an XMPP (Extensible Messaging and Presence Protocol) trigger that listens for incoming XMPP messages and files, and also integrates with RabbitMQ to send commands. It is useful for workflows that require real-time communication via XMPP, such as chatbots, messaging systems, or file transfers over XMPP. The node supports receiving chat messages, handling in-band bytestream (IBB) file transfers, and emitting raw XML stanzas for advanced use cases.
Use Case Examples
- A chatbot workflow that triggers on incoming XMPP chat messages and processes them.
- A file transfer system that listens for files sent over XMPP using IBB and processes the received files.
- A system that sends commands to XMPP users via RabbitMQ and listens for their responses.
Properties
| Name | Meaning |
|---|---|
| Priority | Sets the priority level of the XMPP connection, influencing message routing and presence. |
| IBB Timeout (s) | Timeout in seconds for in-band bytestream (IBB) file transfers before considering them failed or aborted. |
| Emit Raw Stanza | If enabled, the node emits raw XML stanzas received from the XMPP server, useful for advanced processing or debugging. |
Output
JSON
status- Indicates success status of the received message or file.datatype- Type of the received data, e.g., 'conversation' for chat messages or 'file' for file transfers.body- Content of the chat message or a descriptive message about the file received.from- The sender's JID (Jabber ID) of the message or file.file
*fileName- Name of the received file (if applicable).
*mime- MIME type of the received file (empty string if not specified).
*base64- Base64 encoded content of the received file.
type- Type of emitted data, e.g., 'raw-stanza' when raw XML stanza emission is enabled.xml- Raw XML stanza content as a string when 'Emit Raw Stanza' is enabled.time- Timestamp when the raw stanza was received.
Dependencies
- Requires credentials for XMPP connection (service, domain, username, password).
- Requires credentials for RabbitMQ connection to send commands and receive messages.
Troubleshooting
- Ensure that XMPP credentials are correctly configured; missing or incorrect credentials will cause connection failures.
- RabbitMQ connection credentials must be valid and the RabbitMQ server accessible; otherwise, message sending and receiving will fail.
- Timeouts in IBB file transfers may occur if the sender or receiver does not complete the handshake or data transfer within the specified timeout period.
- If 'Emit Raw Stanza' is enabled but no raw stanzas are received, verify that the XMPP server supports and sends the expected stanzas.
- Errors during JSON parsing of RabbitMQ messages may cause message processing to fail; ensure messages are correctly formatted JSON.
Links
- XEP-0047: In-Band Bytestreams - Specification for in-band file transfer over XMPP.
- RabbitMQ Official Site - Information about RabbitMQ message broker used for command messaging.
