(tornadio2) 失败:WebSocket 握手时出错:意外的响应代码:403
当我在我的电脑上运行代码,并尝试通过本地服务器连接我的index.html时,没有问题。但是当我在服务器上运行代码,并尝试连接位于我电脑上的index.html时,我遇到了:
Router <tornadio2.session.ConnectionInfo object at 0x7f7bfc5fac10>
INFO:tornado.access:200 GET /socket.io/1/
DEBUG:root:Initializing websocket handler.
WARNING:tornado.access:403 GET /socket.io/1/websocket/c0532cea9001408c50a9c854f4bce5d8
然后它就切换到xhr-polling协议,但我想使用websocket。
INFO:tornado.access:200 GET /socket.io/1/xhr-polling/62f9b31662c984201685a830c764765e
DEBUG:root:Initializing xhr-polling transport.
DEBUG:root:>>> 1::/socket
DEBUG:root:<<< 1::/socket
DEBUG:root:<<< 3::/socket:connected!
我该怎么做才能解决这个问题呢?
2 个回答
-6
解决了。对于使用tornadio2的用户,你需要这样做:
把这段代码添加到persistent.py文件中(这个文件在tornadio2的目录里)
def check_origin(self, origin):
return True
21
在使用websocket的时候,html文件必须从和websocket相同的服务器加载,除非你修改了check_origin这个设置,允许跨域访问。你可以在这里了解更多信息:http://www.tornadoweb.org/en/stable/websocket.html#tornado.websocket.WebSocketHandler.check_origin