【问题标题】:Can't connect to Flask-Socketio via wss but works via ws无法通过 wss 连接到 Flask-Socketio,但可以通过 ws 工作
【发布时间】:2019-01-01 00:32:32
【问题描述】:

我已经构建了一个 Flask-Socketio 服务器应用程序,当我使用 javascript 客户端通过 ws 连接到它时,它可以按预期工作,但无法通过 wss 连接,无论是在本地主机上还是在我的 Digital Ocean 服务器上运行时。使用 wss,我在控制台中收到此错误(客户端在 Heroku 上运行):

index.js:14 WebSocket connection to 'wss://[IP_ADDRESS]/socket.io/? 
EIO=3&transport=websocket' failed: Error in connection establishment: 
net::ERR_CONNECTION_REFUSED

当客户端在localhost上运行时,会导致这个错误:

polling-xhr.js:265 GET https://localhost:5000/socket.io/? 
EIO=3&transport=polling&t=MW6p0Aj net::ERR_SSL_PROTOCOL_ERROR

烧瓶服务器正在运行

socketio.run(app, host='0.0.0.0', port=443) # production

socketio.run(app, host="localhost", port=5000) # localhost

起初我认为这可能是 Nginx 配置或服务器端口未打开的问题,但是在 Localhost 上运行的服务器也会出现同样的问题,所以现在我怀疑我的 Flask-Socketio 应用程序有问题

【问题讨论】:

    标签: flask socket.io flask-socketio


    【解决方案1】:

    原来我没有配置 SSL 证书。我按照this guide 中的说明创建了一个自签名 SSL 证书并配置 Nginx 以使用它。现在按预期工作。

    【讨论】:

      【解决方案2】:

      Flask-Socketio 存在很多问题。使用 Apache 服务器几乎无法正常工作。但是您使用的是 Nginx。请参考 github 上的以下链接。

      https://github.com/miguelgrinberg/Flask-SocketIO/issues/298#issuecomment-408682588

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-13
        • 2015-12-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-25
        • 1970-01-01
        相关资源
        最近更新 更多