WebSocket 重送
WebSocket 重送可建立能重複使用的工作階段,用於測試 WebSocket 端點。你可以使用擷取的交握詳細資料重新連線、編輯訊息、傳送新訊框,並觀察伺服器回應。
建立工作階段
有兩種建立 WebSocket 重送工作階段的方式:
- 在 WS/SSE 歷程記錄中,於擷取的 WebSocket 訊息上按一下滑鼠右鍵,選擇傳送至 WS 重送工具。
- 開啟 WS 重送,使用
ws://或wss://URL 手動建立工作階段。
手動建立的工作階段可包含自訂標頭,用於 Cookie、授權權杖、協定協商,或應用程式專屬的交握值。
工作階段設定
| 欄位 | 說明 |
|---|---|
| 名稱 | 易於閱讀的工作階段標籤。 |
| URL | WebSocket 端點。URL 必須以 ws:// 或 wss:// 開頭。 |
| 標頭 | 連線時傳送的選填交握標頭。 |
若變更 URL 或標頭,Ogma 會在開啟下一個連線前儲存工作階段。
連線
選擇工作階段,按一下連線。連線狀態會顯示通訊端是未連線、正在連線、已開啟、正在關閉,還是已關閉。
切換目標或變更交握詳細資料前,請使用中斷連線。編輯 URL 或標頭後重新連線,測試新的伺服器路徑或已通過驗證的環境。
連線只會完成 WebSocket 交握。許多應用程式之後還需要驗證或初始化訊框,才會接受業務訊息。請以擷取的第一則用戶端訊息作為基準,等待其確認回覆後,再傳送修改的訊息。擷取的 Cookie、附有簽章的 URL 和權杖可能已過期。
傳送訊息
使用訊息編輯區編輯酬載,並透過選取的工作階段傳送。文字酬載會以 WebSocket 文字訊框傳送。
要傳送十六進位位元組,請切換至二進位模式。重送擷取的第一則 WebSocket 訊息有助於重新傳送初始化訊息,依序重送擷取的對外訊息則會依序傳送擷取的用戶端訊息。請在時間軸中檢查回覆,不要假設傳送序列就已重建應用程式狀態。
協定編輯器支援原始 WebSocket 和受管理的 GraphQL 模式(graphql-transport-ws 和舊版 graphql-ws)。請選擇目標使用的協定,並提供其連線參數。必要時保留原始子協定標頭;要求錯誤的協定可能導致升級失敗。
更新時間戳記預設關閉。只有未簽章的請求需要新時間戳記時才啟用:變更附有簽章的 URL 或酬載可能使簽章失效。自動重新連線會在連線中斷後重試,但新的連線仍可能需要應用層驗證。
從歷程記錄傳送的擷取訊息,會保留原始酬載作為起點,讓你能一次變更一個欄位並比較行為。
訊息時間軸
時間軸記錄所選工作階段傳送和接收的訊框。
| 欄位 | 說明 |
|---|---|
| 方向 | 訊框是由用戶端傳送,還是從伺服器接收。 |
| 操作碼 | 訊框類型,例如 text、binary、ping、pong 或 close。 |
| 大小 | 酬載大小。 |
| 時間 | Ogma 觀察到訊框的時間。 |
選擇訊息即可檢視其酬載。JSON 酬載會在可行時格式化;原始內容仍可用於精確檢查。
測試流程
- 在 WS/SSE 歷程記錄中擷取正常的 WebSocket 互動流程。
- 將值得注意的用戶端訊息傳送至 WS 重送。
- 重新連線並重新傳送原始訊息,確認基準行為。
- 每次修改一個欄位、權杖、ID 或指令。
- 在檢測發現中記錄已確認的行為,或在筆記中保留記錄。
疑難排解
| 症狀 | 檢查內容 |
|---|---|
| 升級被拒絕或禁止 | URL、Origin、Cookie、授權,以及已過期的附有簽章的查詢值。 |
| 子協定無效或未要求 | 將升級標頭與擷取的交握及所選協定模式進行比較。 |
| 連線成功後關閉 | 檢查系統/關閉訊息,並傳送必要的初始化或驗證訊框。 |
| 訊息已傳送,但沒有有用的回覆 | 確認訂閱 ID、先前的訊息、驗證和應用程式狀態;WebSocket 傳輸不會自動重建瀏覽器工作階段。 |
使用 MCP 時,請使用專用的 WS 重送訊息清單/讀取工具和中斷連線工具。擷取歷程記錄工具讀取的是另一份通訊記錄;請參閱 MCP 工具參考。