2015-09-06 157 views
1

当连接到我的WebSocket时,在客户端连接之后,出现上述错误。“WebSocket握手期间出错:状态行无效”

2015-09-06 12:01:12-0400 [-] reactor class: twisted.internet.epollreactor.EPollReactor. 
2015-09-06 12:01:12-0400 [-] ServerFactory starting on 1025 
2015-09-06 12:01:12-0400 [-] Starting factory <twisted.internet.protocol.ServerFactory instance at 0x1f92f80> 
2015-09-06 12:01:28-0400 [-] Got new client! 
2015-09-06 12:01:28-0400 [-] received 'GET/HTTP/1.1' 
2015-09-06 12:01:28-0400 [-] received 'Host: ip:1025' 
2015-09-06 12:01:28-0400 [-] received 'Connection: Upgrade' 
2015-09-06 12:01:28-0400 [-] received 'Pragma: no-cache' 
2015-09-06 12:01:28-0400 [-] received 'Cache-Control: no-cache' 
2015-09-06 12:01:28-0400 [-] received 'Upgrade: websocket' 
2015-09-06 12:01:28-0400 [-] received 'Origin: http://server-ip.net' 
2015-09-06 12:01:28-0400 [-] received 'Sec-WebSocket-Version: 13' 
2015-09-06 12:01:28-0400 [-] received 'User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.85 Safari/537.36' 
2015-09-06 12:01:28-0400 [-] received 'Accept-Encoding: gzip, deflate, sdch' 
2015-09-06 12:01:28-0400 [-] received 'Accept-Language: de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4' 
2015-09-06 12:01:28-0400 [-] received 'Sec-WebSocket-Key: Au1JIvJG0A2Jep3+wqCPRg==' 
2015-09-06 12:01:28-0400 [-] received 'Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits' 
2015-09-06 12:01:28-0400 [-] received '' 
2015-09-06 12:01:28-0400 [-] Lost a client! 

在客户端,它看起来像这样:

WebSocket connection to 'ws://server-ip:1025/' failed: Error during WebSocket handshake: Invalid status line

我一直在努力做的事情:

我跟着this tutorial创建一个即时聊天(Django的)。我使用的chatserver.py直接来自他们的文档:https://twistedmatrix.com/documents/current/_downloads/chatserver.py。其余的(jQuery脚本等)就像在那个教程中一样。

回答

1

MyChat.lineReceived将消息发送给每个连接的客户端,包括本身。我期望这意味着它会将所收到的所有头文件回传给WebSocket客户端,这可能不是它所期望的。

您链接到的ferritfarmer教程通过将该MyChat的工厂包装到WebsocketResource中进行处理,该修改从chatserver.py直接链接到正常的Twisted示例。

我相信WebsocketResource来自Twisted教程链接的特定开发分支。不幸的是,分支似乎停滞不前。我听到Autobahn的WebSocket实现是一个很好的地方。

相关问题