此websocket连接失败。有趣的是,这在几天前是有效的。我把电子从6级降到了5.0.6级,但这并没有帮助。


服务器
from aiohttp import web
import socketio
app = web.Application()
sio = socketio.AsyncServer()
# or sio = socketio.AsyncServer(cors_allowed_origins='*')
sio.attach(app)
@sio.on('connect')
async def user_connected(sid, arg):
print(sid)
print(arg)
if __name__ == '__main__':
web.run_app(app)客户端(也是从纯节点测试的)
const con = 'http://0.0.0.0:8080';
const socket = require('socket.io-client').connect(con);
socket.on('connect', (e) => console.log(e));当我在浏览器中尝试它时,我得到cors错误。因此,我允许cors使其正常工作
sio = socketio.AsyncServer(cors_allowed_origins='*')当我现在从electron/node运行这个命令时,我得到了与最初相同的错误加上一个键错误:

由于它以前是工作的,现在它不能在两台不同的机器上工作,并且只有一个最小的示例项目,我不知道是什么导致了这一切。
请帮我把人堆起来。
发布于 2019-08-01 16:23:54
2021:请注意,您现在可以从pypi再次安装。您仍然需要允许cors。
在twitter上与Miguel Grinberg聊天后,我发现了如何设置它。有几件事。First 4.3默认引入了CORS限制。来自节点客户端的CORS标头存在错误,因为节点不是浏览器。现在这个问题已经解决了。
然而,简单地pip install python-socketio你必须手动安装python-enginio的主分支仍然是不够的,因为有CORS头修复。
我的Pipfile看起来像这样:
[packages]
aiohttp = "*"
aiohttp-cors = "*"
python-enginio = {git = "https://github.com/miguelgrinberg/python-engineio/",ref = "master"}
python-socketio = "*"不要忘记现在在服务器端允许CORS。
sio = socketio.AsyncServer(cors_allowed_origins='*')https://stackoverflow.com/questions/57301646
复制相似问题