乐趣区

关于websocket:WebSocket总结

Header

Sec-WebSocket-Protocol

Sec-WebSocket-Protocol报头指定了你心愿应用的一个或多个 WebSocket 协定,按优先级排序。第一个被服务器反对的将被服务器抉择并在响应中蕴含的 Sec-WebSocket-Protocol 头中返回。你也能够在头文件中应用它不止一次; 后果与在单个报头中应用逗号分隔的子协定标识符列表雷同。

须要 WebSocket 服务器实现了相干 protocol,否则这个字段没什么用。


// socket.io-client
var socket = io({protocols: ["control"]
});

// 原生
var Socket = new WebSocket(url, [protocol]);

Sec-WebSocket-Version

  • 申请头
    指定客户端心愿应用的 WebSocket 协定版本,以便服务器能够确认其端是否反对该版本。(个别不须要改变)
Sec-WebSocket-Version: version

version: 客户端与服务器通信时心愿应用的 WebSocket 协定版本。这个数字应该是 IANA WebSocket 版本号注册表中列出的最新版本。WebSocket 协定的最新最终版本是版本 13。

  • 响应头
    如果服务器不能应用指定版本的 WebSocket 协定进行通信,它将响应一个谬误 (例如 426 Upgrade Required),该谬误在其报头中蕴含一个 Sec-WebSocket-Version 报头,以及一个以逗号分隔的反对协定版本列表。如果服务器不反对申请的协定版本,则响应中不蕴含Sec-WebSocket-Version 头。
Sec-WebSocket-Version: supportedVersions

supportVersions: 服务器反对的 WebSocket 协定版本的逗号分隔列表。

参考文章

  • 协定降级机制
退出移动版