WebSocket 測試客戶端

連線 WebSocket、傳送訊息,並查看收發記錄、連線狀態、關閉碼與伺服器回傳的關閉原因。

輸入完整的 ws:// 或 wss:// 位址。只有當您選擇“連接”時,連接才會開始。
輸入 WebSocket 位址進行連接。關閉程式碼
發送一封簡訊。按 Ctrl+Enter 或 Command+Enter 發送。
訊息日誌
已發送 0已收到 0

連接並發送訊息以開始記錄。

此頁面不會向 BroBroGo 上傳或儲存任何內容。網址和訊息會從瀏覽器直接傳送到你選擇的 WebSocket 伺服器。

常見問題

我可以在這裡檢查哪些 WebSocket 資料?

您可以查看瀏覽器公開的每個文字或二進位訊息、其方向、時間和大小,以及最終關閉程式碼、原因和乾淨關閉狀態。瀏覽器頁面無法公開網路層級片段或 Ping 和 Pong 控制幀。

為什麼即使位址在其他地方有效,連線也會失敗?

在安全頁面上,瀏覽器可能需要 wss://。伺服器也必須接受瀏覽器連線和頁面來源。該用戶端無法新增自訂握手標頭、繞過憑證錯誤或覆蓋伺服器的存取規則。

我可以使用生產資料或敏感資料進行測試嗎?

盡可能使用合成數據。發送前刪除姓名、帳戶詳細資料、法律記錄、財務資訊和健康資訊。訊息將傳送到您選擇的伺服器,其日誌記錄和保留規則不在本頁面的控制範圍內。

WebSocket 實時通訊與連線生命週期

WebSocket 協定為瀏覽器與伺服器之間提供了全雙工(Full-Duplex)的雙向實時通訊管道。與傳統 HTTP 的「請求-回應」模式不同,WebSocket 在建立連線後,雙方即可隨時傳送數據,無需每次重新建立 TCP 連線。

在 WebSocket 的生命週期中,連線狀態會經歷以下階段:

  1. 連線中:當您在「WebSocket 測試客戶端」輸入位址並點擊「連接」時,客戶端會開始嘗試與伺服器建立連線,此時介面會顯示「正在連接到 ‹address›...」。
  2. 已連線:一旦握手成功,連線即正式開啟,日誌會記錄「連接到 ‹address›。」,此時雙方可自由收發訊息。
  3. 關閉中:當用戶端或伺服器發起中斷時,連線進入關閉程序。
  4. 已關閉:連線完全中斷後,日誌會顯示「已關閉,代碼為 ‹code› (‹clean›)。原因:‹reason›」。

協定選擇:ws:// 與 wss:// 的安全性差異

WebSocket 包含兩種不同的協定方案:

  • ws://:非加密的明文傳輸,使用 TCP 連接,預設連接埠為 80。
  • wss://:基於 TLS/SSL 加密的傳輸,預設連接埠為 443。

在現代網路環境中,安全限制非常嚴格。若測試頁面本身部署於 HTTPS 安全網址下,瀏覽器通常會限制僅能連線至 wss:// 伺服器,以防止混合內容(Mixed Content)的安全風險。本工具僅支援這兩種協定,若輸入其他方案,系統將提示「使用 ws:// 或 wss:// 位址。」。

訊息類型與長度限制

WebSocket 協定支援兩種主要的應用層訊息類型:

  • 文字(Text):以 UTF-8 編碼的文字字串。本工具允許您每次傳送一則文字訊息,上限為 100,000 字元,超出時會顯示「該訊息異常大。將其保留在 100,000 字元下。」。
  • 二進位(Binary):例如 Blob 或 ArrayBuffer 數據。在本工具中,接收到的二進位訊息會被標記為「二進位訊息」,並顯示其大小,例如「位元組」。

為了維持瀏覽器頁面的流暢度與響應能力,訊息日誌設有上限:

  • 日誌最多保留 500 條記錄,超出時會移除舊記錄並顯示「‹count› 較舊的日誌條目已被刪除,以保持此頁面的回應能力。」。
  • 單條日誌內容若超過 20,000 字元,系統會進行截斷,並顯示「‹count› 此預覽中隱藏了更多角色。」。

關閉狀態碼與原因解析

當 WebSocket 連線關閉時,協定會定義一個 16 位元的整數關閉碼(Close Code)以及一個可選的文字原因(Reason),用以說明中斷原因。

  • 關閉碼:例如 1000 代表正常關閉,1006 代表異常中斷(無法讀取具體原因)。
  • 乾淨與否:關閉狀態會標示為「乾淨」或「不乾淨」,這取決於 TCP 關閉握手是否完整執行。
  • 原因:若伺服器未提供具體說明,工具會顯示「沒有提供理由」。

瀏覽器環境的技術限制

本工具基於瀏覽器原生 WebSocket API 開發,因此受限於瀏覽器的安全沙箱與架構限制:

  • 無法自訂握手標頭:瀏覽器不允許 JavaScript 在建立 WebSocket 連線時自訂 HTTP 標頭(例如自訂 User-AgentAuthorization)。
  • 無法繞過憑證錯誤:若 wss:// 伺服器的 SSL 憑證無效或過期,瀏覽器會直接拒絕連線。
  • 無法查看底層訊框:瀏覽器 API 封裝了底層細節,因此無法暴露網路層級的片段,也無法擷取或顯示 Ping 和 Pong 控制訊框。

隱私保護與數據處理原則

本工具完全在您的瀏覽器本地端執行。此頁面不會向 BroBroGo 上傳或儲存任何內容。您輸入的 WebSocket 位址以及傳送的訊息,皆會直接從您的瀏覽器發送至您指定的伺服器,不經過任何第三方中轉伺服器。

由於訊息會直接送往目標伺服器,連線前請務必移除個人識別資料,以及敏感的法律、金融或健康資訊,因為本頁面無法控制對方伺服器的記錄與保留政策。

常見連線失敗原因分析

當您遇到連線失敗並看到「連線失敗。檢查位址、憑證、伺服器可用性和瀏覽器存取規則。」時,通常由以下原因引起:

  1. 位址格式錯誤:未輸入完整的協定前綴,位址長度上限為 2,048 字元,超出會提示「該地址異常長。將其保留在 2,048 字元下。」。
  2. 跨來源資源共用(CORS)與 Origin 限制:伺服器拒絕了來自本測試工具網域的連線請求。
  3. 憑證未受信任:目標伺服器使用自簽憑證,且未在瀏覽器中手動信任。
  4. 連線逾時:若伺服器未在 10 秒內回應,將觸發「伺服器未在 10 秒內開啟連線。」的提示。

常見問題解答 (FAQ)

我可以在這裡檢查哪些 WebSocket 資料?

您可以查看瀏覽器公開的每個文字或二進位訊息、其方向、時間和大小,以及最終關閉程式碼、原因和乾淨關閉狀態。瀏覽器頁面無法公開網路層級片段或 Ping 和 Pong 控制幀。

為什麼即使位址在其他地方有效,連線也會失敗?

在安全頁面上,瀏覽器可能需要 wss://。伺服器也必須接受瀏覽器連線和頁面來源。該用戶端無法新增自訂握手標頭、繞過憑證錯誤或覆蓋伺服器的存取規則。

我可以使用生產資料或敏感資料進行測試嗎?

盡可能使用合成數據。發送前刪除姓名、帳戶詳細資料、法律記錄、財務資訊和健康資訊。訊息將傳送到您選擇的伺服器,其日誌記錄和保留規則不在本頁面的控制範圍內。

清除日誌會中斷目前的連線嗎?

不會。點擊「清除日誌」只會清除目前畫面上顯示的歷史訊息條目,並不會關閉現有的 WebSocket 連線,也不會重設已發送與已接收的訊息計數器。