Message Out New in 1.0.8
Puts the incoming payload on the project message bus under a subject — to any Message In that matches, and to any screen with an On message handler for it. In request mode it waits for the first reply and passes that on instead.
Type: message-out · Category: Message Bus · Ports: one input · one output
When to use it
- Telling open screens that something happened — a batch finished, a limit was crossed
- Handing work to another pipeline without wiring the two together
- Asking another pipeline for a value and using the answer further down this one
Settings
| Setting | Key | Default | Purpose |
|---|---|---|---|
| Subject | subject | — | An exact subject, no wildcards. Empty: reuse the incoming message's topic. |
| Send to | scope | All projects | All projects, or This project. |
| Mode | mode | send | Send — fire and forget, or Request — wait for reply. |
| Timeout (ms) | timeoutMs | 5000 | Request mode: how long to wait. Held between 100 ms and 60 s. |
The payload sent is the incoming payload, at most 256 KB once encoded.
Send passes the incoming message on unchanged once it has gone out. Request emits the
first reply instead — its payload, with the same subject as topic — and fails the node on a
timeout, on no receiver, or when the receiver answers with an error. A Catch or the
node's error output can handle any of those.
Example — asking another pipeline for a recipe
Inject → Python (build {"product": "P-104"}) → Message Out (request, recipe.lookup) → Industrial I/O (write setpoints)
The pipeline that owns recipes listens with Message In on recipe.lookup and ends in
Message Reply.
Gotchas
- The default reaches every project. A sender that names no scope is broadcasting. Choose This project unless other projects are meant to hear it — and on the receiving side, a Message In hears all-projects messages unless its switch is off.
- A request is never retried. It may have been acted on even though the answer was late, and with several input messages a retry would re-send the ones that already went. The same holds for a send once the first of several messages has gone out.
- Only a pipeline answers a request. A screen's On message handler hears a sent message, but not a request — a request with only screens listening fails with no receiver.