4

我在 Chromium 中遇到了这个代码更改。它说 Chromium 现在支持两种握手版本,代码似乎证实了这一点。我的意思是维基百科的第二个版本(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 发送新的握手版本?

4

2 回答 2

4

您发布的代码链接用于握手的服务器端(有几个地方可能会在 Chrome 中使用,例如远程调试和作为扩展的代理)。

如果你真的想使用新的 HyBi-07 协议版本,你可以尝试使用我制作的这个 web-socket-js 分支。Chrome 切换到新协议后,默认情况下 web-socket-js 也会切换。为了使 web-socket-js 在已经支持 WebSockets 的浏览器中工作,您需要对其进行一些小的调整以使用不同的对象名称而不是 WebSocket。

我希望 Chrome/WebKit 不久就会添加新协议。请注意,添加二进制支持的API 更改是最近才决定的,因此 Chrome 可能会在 API 完全支持协议启用的新功能之前添加新协议。

于 2011-05-31T18:42:48.307 回答
1

我所知道的唯一实现 07 协议的浏览器是 FF4 版本:

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

于 2011-06-02T20:55:39.850 回答