跳到內容

SSE(Server-Sent Events)

Server-Sent Events 是一道單向的 HTTP 串流:伺服器推送,用戶端聆聽。Restorm 把它 做成一種完整的請求類型。

在樹狀結構中按右鍵 ▸ 新增 ▸ SSE 請求

一個已連線的 SSE 分頁:右側每個收到的事件都會顯示它的時間戳記、名稱(「ping」)與負載(一個序號)。

欄位作用
URL串流的端點
標頭開啟連線那個請求的標頭 — 身分驗證就走這裡
最後事件識別碼Last-Event-ID 標頭的起始值,只會在第一次連線時送出

Restorm 遵循 EventSource 規格:它會解析 event:data:id:retry: 這幾個 欄位,並把每個收到的事件連同時間戳記、名稱與負載一起顯示出來 — 點選某個事件即可展開 它的完整內容。至於識別碼,則會被留下來供重新連線之用。

一旦連線中斷,重新連線時會自動把最後收到的識別碼放進 Last-Event-ID 再送一次 — 伺服器就是靠這個從上次中斷的位置繼續。

這道串流僅供接收:連線開啟之後沒有任何東西需要送出。

兩個動作:SSE 連線(輸出 connectedmessage,每收到一個事件就發出一次)與 關閉 SSE 連線。請參閱 連線與串流

慣用的作法是:先開啟串流,用一個 HTTP 呼叫觸發業務動作,然後以斷言確認預期的事件確實 出現在 message 連接埠上。

三個目標:cURL、瀏覽器的 EventSource、Python(以串流模式使用 requests)。