首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >server /Socket.IO client - python-socketio/aiohttp server //连接失败

server /Socket.IO client - python-socketio/aiohttp server //连接失败
EN

Stack Overflow用户
提问于 2019-08-01 12:00:41
回答 1查看 471关注 0票数 1

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

服务器

代码语言:javascript
复制
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)

客户端(也是从纯节点测试的)

代码语言:javascript
复制
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使其正常工作

代码语言:javascript
复制
sio = socketio.AsyncServer(cors_allowed_origins='*')

当我现在从electron/node运行这个命令时,我得到了与最初相同的错误加上一个键错误:

由于它以前是工作的,现在它不能在两台不同的机器上工作,并且只有一个最小的示例项目,我不知道是什么导致了这一切。

请帮我把人堆起来。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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看起来像这样:

代码语言:javascript
复制
[packages]
aiohttp = "*"
aiohttp-cors = "*"
python-enginio = {git = "https://github.com/miguelgrinberg/python-engineio/",ref = "master"}
python-socketio = "*"

不要忘记现在在服务器端允许CORS。

代码语言:javascript
复制
sio = socketio.AsyncServer(cors_allowed_origins='*')
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57301646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档