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

5 投票
2 回答
10578 浏览
提问于 2025-04-18 16:21

当我在我的电脑上运行代码,并尝试通过本地服务器连接我的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

撰写回答