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