API 設計 中階
WebSocket、Long Polling、SSE 的差異與適用情境
即時通訊技術比較
Short Polling
客戶端定時(如每 5 秒)發送請求詢問有無新資料 ❌ 高延遲、大量無效請求、伺服器壓力大
Long Polling
客戶端發出請求,伺服器 hold 住直到有新資料才回應 ✅ 比 Short Polling 即時 ❌ 每次回應後需重新建立連線
Server-Sent Events (SSE)
單向:伺服器推送至客戶端(HTTP/1.1 長連線) ✅ 簡單、支援自動重連、HTTP 相容 ❌ 僅單向,客戶端無法透過同連線發送
WebSocket
雙向、全雙工、持久連線(TCP) ✅ 最低延遲、高效、適合頻繁雙向通訊 ❌ 需要特殊 Load Balancer 設定(Sticky Session 或 Pub/Sub)
選擇指南
| 場景 | 推薦 |
|---|---|
| 聊天室、協作編輯 | WebSocket |
| 即時通知、Feed | SSE |
| 簡單輪詢(低頻) | Long Polling |
| 實時股票行情 | WebSocket 或 SSE |
面試加分:WebSocket 擴展挑戰(無狀態)可用 Redis Pub/Sub + 多節點解決(如 Socket.io 的 Redis Adapter)。
✦ AI 模擬面試
輸入你的答案,AI 即時分析精準度與改進空間
登入後即可使用 AI 評分
