Server-Sent Events (SSE) 是一個標準,允許伺服器將資料推送給客戶端,比 WebSocket 簡單得多。WebSocket 提供全雙工(雙向)通道,而 SSE 提供從伺服器到客戶端的單工 (simplex)(單向)通道。這非常適合客戶端不需要回傳資料的場景,例如:運作原理#
SSE 透過標準 HTTP 運作。客戶端請求一個 URL,伺服器保持連線開啟,並發送具有特定 Content-Type 的文字訊息:Content-Type: text/event-stream。程式碼範例:訊息格式#
比較:SSE vs. WebSocket#
| 功能 | SSE | WebSocket |
|---|
| 方向 | 僅伺服器到客戶端 | 雙向 |
| 協定 | 標準 HTTP | 自訂 TCP 協定 |
| 複雜度 | 低(內建重新連線) | 高(需要握手和心跳) |
| 防火牆 | 友善(使用 port 80/443) | 可能被封鎖 |
| 二進位資料 | 否(僅 UTF-8 文字) | 是 |
在 Apidog 中除錯 SSE#
Apidog 將 SSE 視為一種特殊類型的 HTTP 請求。1. 啟動串流#
如果伺服器回應 Content-Type: text/event-stream,Apidog 會自動切換到 SSE 模式。2. 時間軸檢視 (Timeline View)#
Apidog 不會等待「最終」回應(可能永遠不會來),而是即時顯示到達的事件時間軸。事件:每個 data 區塊都會被解析並顯示為離散訊息。
關鍵收穫#
單工:SSE 是從伺服器到客戶端的單向通道,非常適合新聞推播、股票代碼和 AI/LLM 回應。
標準 HTTP:與 WebSockets 不同,SSE 在標準 HTTP/s port 上運作,且對防火牆友善。
自動重新連線:瀏覽器自動處理連線中斷,無需額外的函式庫(不像原始 WebSockets)。
Apidog 自動偵測:當 Apidog 偵測到 text/event-stream 內容類型時,會自動切換到「SSE 模式」,即時視覺化串流。
Modified at 2025-12-29 09:35:19