概述
本文為 WebSocket 協議的第十二章,本文翻譯的主要內容為如何使用其他規範中的 WebSocket 協議。
有興趣瞭解該文件之前幾章內容的同學可以見:
- 【譯】WebSocket 協議——摘要( Abstract )
- 【譯】WebSocket 協議第一章——介紹( Introduction )
- 【譯】WebSocket 協議第二章——一致性要求( Conformance Requirements )
- 【譯】WebSocket 協議第三章——WebSocket網址( WebSocket URIs )
- 【譯】WebSocket 協議第四章——連線握手( Opening Handshake )
- 【譯】WebSocket 協議第五章——資料幀(Data Framing)
- 【譯】WebSocket 協議第六章——傳送與接收訊息(Sending and Receiving Data)
- 【譯】 WebSocket 協議第七章——關閉連線(Closing the Connection)
- 【譯】 WebSocket 協議第八章——錯誤處理(Error Handling)
- 【譯】 WebSocket 協議第九章——擴充套件(Extension)
- 【譯】 WebSocket 協議第十章——安全性考慮(Security Considerations)
- 【譯】 WebSocket 協議第十一章——IANA 注意事項(IANA Considerations)
使用其他規範中的WebSocket協議(協議正文)
WebSocket協議旨在由另一規範使用,以提供動態作者定義內容的通用機制。例如,在定義指令碼 API 的規範中定義 WebSocket 協議。
例如一個規範首先需要建立 WebSocket 連線
,提供該演算法:
- 目標資源,包含一個
主機名(host)
和一個埠(port)
。 資源名稱
,允許在一個主機和埠上識別多個服務。安全
標記,當這個值為 true 時,連線應該被加密,如果為 false 時則不需要。- 原始RFC6454的ASCII序列化,負責連線。
- 可選的,基於 WebSocket 連線的通過一個字串定義的協議。
主機
、埠
、資源名稱
和安全
標記通常是使用解析 WebSocket URI 元件,通過 URI 來獲取。如果 URI 中沒有指定這些 WebSocket 欄位,那麼這個解析將失敗。
如果在任意時間連線被關閉了,那麼規範需要使用關閉 WebSocket 連線
演算法(第 7.1.1 節)。
第 7.1.4 節定義了什麼時候WebSocket 連線關閉
。
當連線開啟時,文件需要處理收到一條 WebSocket 訊息
(第 6.2 節)的場景。
為了向已經建立的連線傳送一些資料
,文件需要處理傳送 WebSocket 訊息
(第 6.1 節)。