如何让Chromium发送新的WebSocket握手?

时间:2011-05-24 12:06:00

标签: google-chrome protocols websocket chromium handshake

我遇到了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发送新的握手版本?

2 个答案:

答案 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的这个版本:

http://www.ducksong.com/misc/websockets-builds/ws-07/