(tornadio2)失败:WebSocket握手期间出错:意外响应代码:403

时间:2014-08-07 07:59:42

标签: python sockets socket.io tornado

当我在我的电脑上运行我的代码并尝试使用我的index.html在localhost上连接套接字没有问题,但是当我尝试在服务器上运行我的代码并尝试使用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

然后将protocal切换为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 个答案:

答案 0 :(得分:19)

除非您覆盖check_origin以允许跨源访问,否则必须从与websocket相同的服务器加载html:http://www.tornadoweb.org/en/stable/websocket.html#tornado.websocket.WebSocketHandler.check_origin

答案 1 :(得分:-5)

解决了它。对于tornadio2用户,您必须这样做:

将此代码添加到persistent.py(它位于tornadio2中)

def check_origin(self, origin):
    return True