跳到內容

連線與串流

這些動作都是兩三個一組:連線、傳送、關閉。連線會在各個節點之間保持 開啟,所以中間還能夾進別的呼叫。

一個連線動作有兩個輸出:

輸出發出時機
connected一個訊號,在連線建立時發出一次
message每收到一則訊息就發出一次

它帶有一個連線名稱(connectionName)。之後的傳送與關閉動作,就用節點識別碼 (connectionNodeId)指定這條連線。

典型的模式:

MQTT connect ──connected──► HTTP 請求(觸發業務動作)
└────────message─────► Assert(預期的訊息已送達)
然後 ──► 關閉 MQTT 連線
動作輸入輸出
WebSocket 連線—connected、message(收到的任何訊框)
WebSocket sendpayload—
關閉 WebSocket 連線——
關閉 WebSocket 伺服器——

請參閱 WebSocket。

動作輸入輸出
Socket.IO 連線—connected、每個已宣告的事件一個 event:<name> 連接埠,以及 others
Socket.IO sendchannel、payload—
關閉 Socket.IO 連線——
關閉 Socket.IO 伺服器——

這是唯一輸出可自行設定的連線動作:您宣告一份感興趣的事件清單,每個事件就各得 一個連接埠。凡是沒宣告的事件都會落在 others 上。

請參閱 Socket.IO。

動作輸入輸出
MQTT connect—connected、message
MQTT publishpayload—
關閉 MQTT 連線——

連線會訂閱該請求的主題;傳送則會依設定的 QoS 與 Retain 選項發佈。請參閱 MQTT。

動作輸入輸出
SSE 連線—connected、message
關閉 SSE 連線——

只收不送:沒有對應的傳送動作。請參閱 SSE。

動作輸入輸出
STOMP 連線—connected、message
STOMP 傳送payload—
關閉 STOMP 連線——

連線會先送出 CONNECT,再為每個已設定的訂閱各送一個 SUBSCRIBE;傳送會產生一個 SEND 訊框;關閉則送出 DISCONNECT。請參閱 STOMP。

動作輸入輸出
AMQP 連線—connected、message
AMQP 發布payload—
關閉 AMQP 連線——

連線會消費該請求的佇列(subscribe 模式);發布則使用它的 Exchange 與路由金鑰。 請參閱 AMQP。

動作輸入輸出
Redis subscribe—connected、message
關閉 Redis 連線——

若只要下一道單獨的命令,那是 Redis command,屬於請求/回應型的動作 — 請參閱 請求與組合。

動作輸入輸出
Kafka consume—connected、message
關閉 Kafka 連線——

消費端會透過該請求的消費者群組訂閱。要產生訊息則是 Kafka produce,那是一次性 的動作。請參閱 Kafka。

動作輸入輸出
gRPC connect—connected、message
gRPC sendpayload—
關閉 gRPC 連線——

適用於 server-stream、client-stream 和 bidirectional-stream 三種模式:傳送 只對後兩者有意義,關閉則執行用戶端側的半關閉。unary 呼叫請用 HTTP 請求。請參閱 gRPC。

動作輸入輸出
GraphQL 訂閱—connected、message
GraphQL 取消訂閱——

請參閱 GraphQL。