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

标签 google-chrome protocols websocket chromium handshake

我遇到了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/

相关文章:

google-chrome - 如何使用 Inno Setup 检查 Windows 计算机上是否安装了 Google Chrome

css - @font-face 在 Windows 7 中呈现

javascript - Google-chrome 无法在 Ubuntu 中本地查看我的 webGL Three.js 网页

javascript - 使用实时数据更新热图

javascript - ASP.Net 复选框回发不会触发

c++ - 如何为Winboard制作一个简单的协议(protocol)?

ios - 协议(protocol)一致性的快速访问控制

swift - 通用 Controller 内的通用 Swift 协议(protocol)

javascript - Socket IO 中的确认与发出

ios - SocketRocket 在尝试安装 socketrocket 以便我可以使 PonyDebugger 工作之后,我收到 3 个 Apple Match-O 链接器错误