API Academy
🌐 繁體中文
  • 🌐 English
  • 🌐 繁體中文
HomePetstore APIExplore more APIs
HomePetstore APIExplore more APIs
🌐 繁體中文
  • 🌐 English
  • 🌐 繁體中文
🌐 繁體中文
  • 🌐 English
  • 🌐 繁體中文
  1. Advanced API Technologies
  • 歡迎
  • 目錄
  • API 學院
    • Get Started
      • 什麼是 API?
      • API 如何運作?
      • 如何呼叫 API?
      • 如何閱讀 API 文件?
      • 章節總結
    • API Fundamentals
      • API 基礎知識:概覽
      • 方法與路徑
      • 參數
      • 請求 Body
      • 回應
      • API 規格與 OAS
      • 章節總結
    • Working with APIs
      • 使用 API:概覽
      • 根據規格發送請求
      • 環境與變數
      • 串聯多個端點
      • 處理 Auth
      • 處理 API 簽名
      • 腳本介紹
      • 章節總結
    • Mocking APIs
      • Mocking API:概覽
      • Smart Mock
      • Mock 預期結果
      • Cloud Mock
      • Mock 腳本
      • 章節總結
    • Designing APIs
      • 設計 API:概覽
      • API 設計介紹
      • 建立您的第一個 API 專案
      • 分析需求並規劃您的 API
      • 設計資料模型
      • 設計端點
      • 使用組件與可重用性
      • 設定與 Auth
      • API 設計指南
      • 章節總結
    • Developing APIs
      • 開發 API:概覽
      • 設定:安裝您的 AI 程式碼助手
      • 快速入門:30 分鐘內從規格到運行的 API
      • 了解生成的程式碼
      • 使用 Apidog 測試您的 API
      • 部署:將您的 API 上線
      • 章節總結
    • Testing APIs
      • 測試 API:概覽
      • 快速入門:您的第一個測試場景
      • 整合測試與資料傳遞
      • 動態值
      • 斷言與驗證
      • 流程控制:If, For, ForEach
      • 資料驅動測試
      • 性能測試
      • 測試報告與分析
      • CI/CD 整合
      • 排程任務與自動化
      • 進階測試策略
      • 章節總結
    • API Documentations
      • API 文件:概覽
      • 發布您的第一個 API 文件
      • 自訂文件外觀
      • 給消費者的互動功能
      • 進階發布設定
      • 管理 API 版本
      • 章節總結
    • Advanced API Technologies
      • 進階 API 技術:概覽
      • GraphQL
      • gRPC
      • WebSocket
      • Socket.IO
      • Server-Sent Events
      • SOAP
      • 章節總結
    • API Lifecycle
      • API 生命周期:概覽
      • API 生命周期的階段
      • API 治理
      • API 安全最佳實踐
      • 監控與分析
      • API 版本策略
      • API 的未來
      • 章節總結
    • API Security
      • API 安全性:概覽
      • API 安全性基礎知識
      • 身份驗證 vs. 授權
      • 了解 OAuth 2.0 和 OpenID Connect
      • JSON Web Tokens (JWT)
      • OWASP API 安全 Top 10
      • 加密與 HTTPS
      • 章節總結
    • API Tools
      • API 工具:概覽
      • API 工具的演變
      • API Clients
      • 命令列工具 (cURL, HTTPie)
      • API 設計和文件工具
      • API Mocking 工具
      • API 測試工具
      • 一體化 API 平台
      • 章節總結
    • API Gateway
      • API Gateway:概覽
      • 什麼是 API Gateway?
      • API Gateway 的關鍵功能
      • API Gateway vs 負載平衡器 vs 服務網格
      • 流行 API Gateway 解決方案
      • BFF (Backend for Frontend) 模式
      • 章節總結
HomePetstore APIExplore more APIs
HomePetstore APIExplore more APIs
🌐 繁體中文
  • 🌐 English
  • 🌐 繁體中文
🌐 繁體中文
  • 🌐 English
  • 🌐 繁體中文
  1. Advanced API Technologies

Socket.IO

Socket.IO 是一個函式庫,可啟用客戶端和伺服器之間的低延遲、雙向和基於事件的通訊。它本質上是建立在 WebSockets 之上的一個「框架」。
許多開發者認為 Socket.IO 和 WebSockets 是相同的,但它們不是。標準 WebSocket 客戶端無法連接到 Socket.IO 伺服器,因為 Socket.IO 添加了自己的元數據和握手協定 (Engine.IO) 以增加自動重新連線、封包緩衝和廣播等功能。

關鍵功能#

1.
基於事件:發送具名事件(user_login, new_message)而不僅僅是原始文字。
2.
自動重新連線:如果網路中斷,會自動嘗試重新連線。
3.
Rooms & Namespaces:內建支援將使用者分群到頻道(例如,聊天室 A、聊天室 B)。
4.
備援 (Fallbacks):如果 WebSockets 被公司防火牆封鎖,它會透明地退回到 HTTP 長輪詢 (Long-Polling)。

程式碼範例:Node.js Server & Client#

Socket.IO 以其簡單的 API 聞名。
Server (Node.js):
Client (Browser):

比較:Socket.IO vs. WebSocket#

功能WebSocketSocket.IO
類型標準協定 (IETF)函式庫 / 框架
API 風格低階 (Strings/Bytes)高階 (Named Events)
可靠性手動重新連線邏輯內建自動重新連線
可擴展性手動 (Redis adapter 等)內建 Adapters (Redis, Postgres)
客戶端大小原生 (0kb)需要客戶端函式庫 (~30kb)

在 Apidog 中除錯 Socket.IO#

Apidog 原生區分標準 WebSocket 和 Socket.IO 2/3/4。

1. 建立 Socket.IO 請求#

1.
點擊 + 並選擇 New Socket.IO。
2.
輸入 URL。
3.
檢查版本:在特定環境中,您可能需要在 Settings 分頁中強制指定客戶端版本 (v2/v3/v4)。
CleanShot 2025-11-05 at 17.17.02@2x.png

2. 發送 (Emitting) 事件#

在「Message」面板中:
1.
Event Name:事件名稱(例如 chat_message)。
2.
Arguments:負載(JSON 物件、字串等)。
3.
點擊 Send。

3. 監聽事件(Events 分頁)#

與您可以看到所有內容的原始 WebSockets 不同,Socket.IO 很吵雜。
1.
前往 Events 分頁(在 Message 旁邊)。
2.
Add Event:輸入您想要捕捉的事件名稱(例如 user_joined)。
3.
Apidog 現在將過濾並在 Timeline 中顯示這些傳入事件。
查看詳情 Socket.IO

關鍵收穫#

超越 WebSocket:Socket.IO 是一個函式庫,在標準協定之上增加了可靠性(自動重新連線)和功能(Rooms, 廣播)。
基於事件:通訊圍繞著具名事件(如 chat_message)旋轉,而不僅僅是原始資料流。
版本特定:Socket.IO 有主要版本 (v2/v3/v4),並不總是相容;Apidog 支援選擇您需要的特定版本。
事件過濾:使用 Apidog 的「Events」分頁過濾雜訊,專注於對您除錯重要的訊息。
繼續閱讀 → Server-Sent Events
Modified at 2025-12-29 09:35:19
Previous
WebSocket
Next
Server-Sent Events
Built with