为什么borwser可以';无法连接WebSocket服务器?

为什么borwser可以';无法连接WebSocket服务器?,websocket,Websocket,我编写了Websocket服务器。我想它回报了一切,也许我错过了什么。 这是浏览器发送给它的内容: GET /app HTTP/1.1 Upgrade: websocket Connection: Upgrade Host: pm.local:4444 Origin: http://pm.local Pragma: no-cache Cache-Control: no-cache Sec-WebSocket-Key: dkX2mQo3cBVA0DMQ7m9oTw== Sec-WebSocket-

我编写了Websocket服务器。我想它回报了一切,也许我错过了什么。 这是浏览器发送给它的内容:

GET /app HTTP/1.1
Upgrade: websocket
Connection: Upgrade
Host: pm.local:4444
Origin: http://pm.local
Pragma: no-cache
Cache-Control: no-cache
Sec-WebSocket-Key: dkX2mQo3cBVA0DMQ7m9oTw==
Sec-WebSocket-Version: 13
Sec-WebSocket-Extensions: x-webkit-deflate-frame
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36
服务器将发送该响应:

HTTP/1.1 101 WebSocket Protocol Handshake
Upgrade: WebSocket
Connection: Upgrade
Sec-WebSocket-Origin: http://pm.local
Sec-WebSocket-Location: http://pm.local/app
Sec-WebSocket-Accept: KrfNVY/hsidqg2HX7YBdXHD/SQM=
Sec-WebSocket-Protocol: sample
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: content-type
Access-Control-Allow-Origin: http://pm.local
当然,最后它总是发送'\r\n'

你知道这个回答有什么问题吗?
感谢您的帮助

Sec WebSocket位置应该类似于
ws://[host]/[uri]
,以“ws”而不是“http”开头。

请从响应中删除Sec WebSocket协议头。当客户端未发送标头时,包含它是无效的


请同时删除Sec WebSocket位置标题。这是老规格的东西。RFC6455中未使用。

谢谢您的帮助,但我在代码中发现了一个“bug”。 我用Java编写了服务器,响应的每一行都以

'\r' + '\n'
但应该是这样

"\r\n"

就这样。现在它可以工作了:)

包括更多信息。浏览器端会发生什么?服务器端会发生什么?查看日志。感谢您的反馈。在浏览器端,websocket对象readyState的值为0。此外,连接状态为“挂起”。我正在尝试编写WebSocket服务器,因此我还没有任何日志。如果您需要帮助,请开始一个新问题。