gpt4 book ai didi

javascript - electronic/socket.io客户端-python-socketio/aiohttp服务器//连接失败

转载 作者:行者123 更新时间:2023-12-03 12:24:23 25 4
gpt4 key购买 nike

此websocket连接失败。有趣的是,这是几天前的工作。我将 Electron 从6降级到5.0.6,但这无济于事。

enter image description here
enter image description here

服务器

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/节点运行此命令时,会得到与最初相同的错误以及一个关键错误:
enter image description here

由于它以前运行过,现在它不在两台不同的机器上运行,并且仅带有一个最小的示例项目,所以我不知道是什么原因导致了所有这些。

请帮我叠人。

最佳答案

在Twitter上与Miguel Grinberg聊天之后,我了解了如何进行设置。有几件事。首先,默认情况下4.3引入了CORS限制。由于节点不是浏览器,因此来自节点客户端的CORS header 存在一个错误。现在已经解决了。

但是,仅仅使用pip install python-socketio还是不够的
您必须手动安装python-enginio的master分支,因为存在CORS header 修复程序。

我的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='*')

关于javascript - electronic/socket.io客户端-python-socketio/aiohttp服务器//连接失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57301646/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com