gpt4 book ai didi

php - Chrome 20 网络套接字握手

转载 作者:可可西里 更新时间:2023-11-01 13:35:22 24 4
gpt4 key购买 nike

我正在使用 lemmingzshadow ( web ) 的 PHP Websocket 服务器。到目前为止一切正常。

更新到 chrome 20 后,如果我想与服务器握手,它会以这个错误结束

Error during WebSocket handshake: Sec-WebSocket-Protocol mismatch 

来自 chrome 20 的 header

GET /demo HTTP/1.1
Upgrade: websocket
Connection: Upgrade
Host: gomokulive.eu:8001
Origin: http://www.gomokulive.eu
Sec-WebSocket-Key: s+AMQQu4Q10xH2AKy49byg==
Sec-WebSocket-Version: 13
Sec-WebSocket-Extensions: x-webkit-deflate-frame

发回的 header :

HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: dMCVYKkF5VRrIouWFW7EYdvfD28=
Sec-WebSocket-Protocol: demo

我认为问题出在 Chrome 20 的“Sec-WebSocket-Extensions: x-webkit-deflate-frame” header 上。

知道如何让它重新工作吗?

最佳答案

服务器违反了 WebSocket 协议(protocol)。 Chrome 可能只是在第 20 版中更正确地遵守了标准,这揭示了服务器中的错误。

问题是服务器在响应中发送回“Sec-WebSocket-Protocol” header ,但这仅在客户端在请求中发送相同 header 时才合法。如果客户端不发送 Sec-WebSocket-Protocol,则服务器应在响应中省略 header 。

请参阅 Section 4.2.2 of rfc6455 中第 22 页的/subprotocol/说明

关于php - Chrome 20 网络套接字握手,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11300694/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com