Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google chrome 如何让Chromium发送新的WebSocket握手?_Google Chrome_Protocols_Websocket_Chromium_Handshake - Fatal编程技术网

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

Google chrome 如何让Chromium发送新的WebSocket握手?,google-chrome,protocols,websocket,chromium,handshake,Google Chrome,Protocols,Websocket,Chromium,Handshake,我偶然发现。它说Chromium现在支持两种握手版本,代码似乎证实了这一点。我指的是第二个版本(草案-ietf-hybi-thewebsocketprotocol-06) 但是,当我连接到我的服务器时,我唯一得到的是旧版本,即包括以下标题: Sec-WebSocket-Key1: 4 @1 46546xW%0l 1 5 Sec-WebSocket-Key2: 12998 5 Y3 1 .P00 但不是新版本,它将是一个包含以下内容的请求: Sec-WebSocket-Key: x3JJHM

我偶然发现。它说Chromium现在支持两种握手版本,代码似乎证实了这一点。我指的是第二个版本(草案-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发送新的握手版本?

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

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


我预计Chrome/WebKit不久将添加新协议。请注意,to add binary支持最近才出现,因此在API完全支持协议启用的新功能之前,可以添加新协议。

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


我不知道这是一个如此真实的话题。谢谢你的解释和链接。然而,你能告诉我WebSocket js对Chrome的原生WebSocket接口有什么用途吗?很抱歉,我无法真正区分两者之间的区别。pimvdb:该协议的新版本解决了一些行为不端的HTTP代理的安全问题,并且还添加了二进制消息支持。您询问如何使用新协议,由于我不知道目前有任何浏览器发布了新协议,您可以使用web socket js shim来获得新协议(尽管web socket js的分支尚未实现二进制支持)。如果您对新协议没有特殊需求,只需使用当前Chrome版本中内置的旧协议。更新:当前Chrome stable发送新的握手格式,因此此问题不再适用。你可以在Chrome中使用新格式,现在没有问题了。