无法通过 wss 连接到 Flask-Socketio 但可以通过 ws 工作
Can't connect to Flask-Socketio via wss but works via ws
我构建了一个 Flask-Socketio 服务器应用程序,当我使用 javascript 客户端通过 ws 连接到它时,它按预期工作,但无法通过 wss 连接,无论是在本地主机上还是在 运行 在我的数字海洋服务器上。使用 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
当客户端在本地主机上 运行 时,会导致此错误:
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 配置或服务器端口未打开的问题,但是本地主机上的服务器 运行 也出现了同样的问题,所以现在我怀疑有问题使用我的 Flask-Socketio 应用程序
Flask-Socketio 存在很多问题。对于 Apache 服务器,它几乎不会 works.But 您正在使用 Nginx。请参阅 github 上的以下 link。
https://github.com/miguelgrinberg/Flask-SocketIO/issues/298#issuecomment-408682588
原来我没有配置 SSL 证书。我按照 this guide 中的说明创建了一个自签名 SSL 证书并配置 Nginx 来使用它。现在按预期工作。
我构建了一个 Flask-Socketio 服务器应用程序,当我使用 javascript 客户端通过 ws 连接到它时,它按预期工作,但无法通过 wss 连接,无论是在本地主机上还是在 运行 在我的数字海洋服务器上。使用 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
当客户端在本地主机上 运行 时,会导致此错误:
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 配置或服务器端口未打开的问题,但是本地主机上的服务器 运行 也出现了同样的问题,所以现在我怀疑有问题使用我的 Flask-Socketio 应用程序
Flask-Socketio 存在很多问题。对于 Apache 服务器,它几乎不会 works.But 您正在使用 Nginx。请参阅 github 上的以下 link。
https://github.com/miguelgrinberg/Flask-SocketIO/issues/298#issuecomment-408682588
原来我没有配置 SSL 证书。我按照 this guide 中的说明创建了一个自签名 SSL 证书并配置 Nginx 来使用它。现在按预期工作。