【问题标题】:(tornadio2) failed: Error during WebSocket handshake: Unexpected response code: 403(tornadio2) 失败:WebSocket 握手期间出错:意外的响应代码:403
【发布时间】:2014-09-30 09:04:18
【问题描述】:

当我在我的电脑上运行我的代码并尝试在本地主机上用我的 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!

我能做些什么来解决这个问题?

【问题讨论】:

标签: python sockets socket.io tornado


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    def check_origin(self, origin):
        return True
    

    【讨论】:

    • 接受上面提供的正确答案是有礼貌的
    • 这个答案在您的用例中是正确的,但如果没有解释,它可能非常不安全。请接受正确的答案。
    猜你喜欢
    • 2018-06-04
    • 2017-01-30
    • 1970-01-01
    • 2015-12-26
    • 2017-06-04
    • 2019-06-25
    • 2019-11-25
    • 2016-04-08
    • 1970-01-01
    相关资源
    最近更新 更多