我遇到了this code change in Chromium .它说 Chromium 现在支持两种握手版本,代码似乎证实了这一点。我的意思是 Wikipedia 的第二个版本(草案-ietf-hybi-thewebsocketprotocol-06)。
但是,当我连接到我的服务器时,我唯一获得的是旧版本,即包括这些 header :
Sec-WebSocket-Key1: 4 @1 46546xW%0l 1 5
Sec-WebSocket-Key2: 12998 5 Y3 1 .P00
但不是新版本,它是一个包含以下内容的请求:
Sec-WebSocket-Key: x3JJHMbDL1EzLkh9GBhXDw==
我在这里想念什么?我下载了最新的夜间版本,它已在两周多前被包含在内,所以我猜这不是原因。
如何让 WebSocket 发送新的握手版本?
最佳答案
您发布的代码链接用于握手的服务器端(在 Chrome 中可能会使用一些地方,例如远程调试和作为扩展的代理)。
如果您真的想使用新的 HyBi-07 协议(protocol)版本,您可以尝试使用 this branch我制作的 web-socket-js。 Chrome 切换到新协议(protocol)后,默认情况下 web-socket-js 也会切换。为了使 web-socket-js 在已经支持 WebSockets 的浏览器中工作,您需要对其进行一些小的调整以使用不同的对象名称而不是 WebSocket。
我希望 Chrome/WebKit 不久就会添加新协议(protocol)。请注意 API changes添加二进制支持最近才decided因此 Chrome 可能会在 API 完全支持协议(protocol)启用的新功能之前添加新协议(protocol)。
关于google-chrome - 如何让 Chromium 发送新的 WebSocket 握手?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6110116/