WebSocket 是一種獨特的電腦通訊協定,透過單一 TCP 連線提供全雙工 (full-duplex) 通訊通道。與 HTTP 的請求-回應(客戶端詢問,伺服器回答)不同,WebSocket 允許客戶端和伺服器隨時發送資料。這種持久性使其成為聊天應用、即時遊戲和交易平台等即時應用程式的標準。運作原理(握手 Handshake)#
WebSocket 以標準 HTTP 請求開始。客戶端請求「升級 (Upgrade)」連線:伺服器回應 (101 Switching Protocols):一旦這個握手完成,HTTP 連線就會被 WebSocket 連線取代,並無限期保持開啟。程式碼範例:JavaScript Client#
比較:HTTP vs. WebSocket#
| 功能 | HTTP | WebSocket |
|---|
| 連線 | 短暫 (請求/回應) | 持久 (Keep-alive) |
| 方向 | 半雙工 (客戶端啟動) | 全雙工 (雙向) |
| 負擔 | 高 (每個請求都有 Headers) | 低 (僅起初有 Headers) |
| 延遲 | 較高 (連線時間) | 最低 (始終連線) |
在 Apidog 中除錯 WebSocket#
除錯持久連線需要與標準 HTTP 請求不同的介面。1. 建立連線#
1.
在 Apidog 中建立一個 New WebSocket API。
2.
輸入 URL(以 ws:// 或 wss:// 開頭)。
Apidog 將執行握手並顯示「Connected」狀態。2. 發送和接收訊息#
訊息類型:您可以發送文字 (JSON, String) 或二進位內容。
訊息串流:所有發送和接收的訊息都會顯示在依時間排序的時間軸檢視中。
格式化:使用內部 JSON 格式化工具使複雜的訊息負載易於閱讀 。
3. 處理變數#
您可以在以下位置使用 Apidog 變數(例如 {{token}}):關鍵收穫#
全雙工:WebSocket 透過單一持久連線在客戶端和伺服器之間啟用即時、雙向通訊。
低延遲:一旦建立,交換資料訊框無需重複 HTTP Headers 的負擔。
有狀態 (Stateful):與無狀態的 REST 不同,伺服器知道誰已連線,使其非常適合聊天應用和遊戲。
時間軸除錯:Apidog 提供即時時間軸檢視,以依時間順序追蹤發送和接收的訊息。
Modified at 2025-12-29 09:35:19