我在Python中创建了一个websockets服务器(based in this gist),它在localhost中工作,但不在生产服务器中工作。Websockets握手问题
例如,在本地主机我有以下握手的消息:
//Message from webbrowser client
GET/HTTP/1.1
Upgrade: WebSocket
Connection: Upgrade
Host: 127.0.0.1:8080
Origin: null
Sec-WebSocket-Key1: ]2 415 401 032v
Sec-WebSocket-Key2: 2y7 9Y2o 80049 5
Cookie: (...)
t��t`��
//Response of server
HTTP/1.1 101 Web Socket Protocol Handshake
Upgrade: WebSocket
Connection: Upgrade
WebSocket-Origin: null
WebSocket-Location: ws://127.0.0.1:8080/
Sec-Websocket-Origin: null
Sec-Websocket-Location: ws://127.0.0.1:8080/
�@2�J��[email protected]��ƶ
当我运行相同webssocket在生产服务器,连接失败。 “WebSocket的握手期间错误:‘连接’标题值不是‘升级’”在Chrome的控制台我得到下面的错误 - 但在握手的服务器和客户端(从服务器)连接具有正确的价值之间的消息:
//Message from webbrowser client
GET/HTTP/1.0
Host: myserver.com
X-Forwarded-Host: myserver.com
X-Forwarded-Server: myserver.com
X-Forwarded-For: 189.6.133.224
Connection: close
Upgrade: WebSocket
Origin: http://myserver.com
Sec-WebSocket-Key1: 2 1)Gz 11919la 978
Sec-WebSocket-Key2: c94Q6b9^ef#`6 2v {652
Cookie: (...)
//Response of server
HTTP/1.1 101 Web Socket Protocol Handshake
Upgrade: WebSocket
Connection: Upgrade
WebSocket-Origin: http://myserver.com
WebSocket-Location: ws://myserver.com/websocket/server
Sec-Websocket-Origin: http://myserver.com
Sec-Websocket-Location: ws://myserver.com/websocket/server
yz�~�r}��+�4J
在生产中我得到了客户的邮件中的某些陌生人值:
- 哪里是在消息的最后疯狂代码?
- 'Connection'标题的值是'close'?!
有人知道为什么我得到这个错误,为什么客户端握手有这些值?