问题标签 [gevent-socketio]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
79 浏览

socket.io - 将 Zope 与 socket-io 集成

有没有办法使用 Python 2.6.8 和 socket-io 集成 Zope 2 (2.13.19)?

我找到了https://python-socketio.readthedocs.io/en/latest/但它似乎不符合要求。

0 投票
0 回答
1653 浏览

python - 套接字IO。在命名空间上不起作用

我有以下系统:[Clietn] --- [Web Server (Flask)] --- [Data source]。

数据源连接到服务器并无休止地发送新数据。服务器收到新数据后,将其发送给客户端。交换是使用 Socket.IO 库组织的。

[ Clietn (JS) socket.io)] --- [python-flask-socketio服务器python-flask-socketio] --- [python-socketio数据源]

编码

客户

服务器(烧瓶)

达拉源

为什么在将连接器连接到服务器时,会触发“@sio.on ('connect', namespace = '/')”处理程序?它还激活处理程序“@sio.on ('tag_changed', namespace = '/connector')”。

sio.connect ('http://192.168.3.58:5000/connector', namespaces = ['/ connector'])也没有帮助。

0 投票
1 回答
883 浏览

python - 为什么 flask_socketio.disconnect 会阻止线程完成?

我有以下系统:[Client] - [Web Server] - [Connecotr]

连接器是 Web 服务器和数据源之间的一种中间代码。

我需要监视与连接器的服务器连接。如果连接丢失,那么我必须通知客户端。

Web 服务器和连接器之间的通信是使用 socketio 组织的。

问题是如果连接器停止工作,那么 Web 服务器将在一分钟后知道它(这是最好的情况)。

我决定服务器应该每秒检查一次连接器的状态。

当连接器连接到服务器时,后台任务将启动。任务的本质:每一秒:1)固定时间;2)将固定时间保存到堆栈中;3) 将回显消息发送到连接器。(见 server.background_thread)

连接器接受回显消息和时间戳作为参数,并将回显消息发送到 Web 服务器,作为它传递接收到的时间戳的参数。(见client.echo)

Web 服务器收到回显消息,如果时间戳等于堆栈中的最后一个值,则从堆栈中删除该值。(见 server.on_echo_connector)

在 Web 服务器上,每次迭代都会检查堆栈大小(请参阅 server.background_thread)。如果大于5,则表示连接器5次没有响应回显消息,我们认为连接器不可用,断开连接。

当服务器意识到连接器不可用时,需要终止向连接器发送回显消息的线程。

一旦堆栈大小大于 5,我退出无限循环并调用flask_socketio.disconnect (connector_sid, '/ connector'). 在这个电话之后没有任何效果(例如print

on_disconnect_connector(server) 方法中,thread.join()被调用并且永远不会终止。

而且我需要完成线程,这样当连接器再次启动时,它会连接成功,一切重新开始。

如何解决这个问题呢?

服务器

客户

蟒蛇 2.7

0 投票
0 回答
519 浏览

python-3.x - 如何强制 gevent WSGIServer 同时监听 HTTP 和 HTTPS

我可以使用 HTTPS 访问应用程序,但是在将其转换为 https 后,如何将其重定向到监听 http。

当我尝试使用 http 访问它时,出现以下错误。

我的运行.py

0 投票
0 回答
116 浏览

python - 使用flask socketio的正确方法,带有多个multiprocces的eventlet

我想知道如何使用flask socketio、带有多个multiprocces的eventlet是否正确。

我有多个 procces 来使用 gstreamer 处理相机流,每个 proc 将帧和元数据写入 redis。

我的主程序使用 socketio 来处理这个过程。(启动,停止)并从 redis 获取数据,并通过套接字将其发送到 webclient。

下面的代码非常减少,但显示了我所做的。通常代码有效,但我想确定我是否以正确的方式进行操作。如果需要更多信息,请告诉我。

非常感谢

0 投票
1 回答
206 浏览

nginx - TypeError: 'module' 对象在使用 Flask-SocketIO、uWSGI+gevent 和 Nginx 时不可调用。谁能帮我摆脱困境?

我正在使用 Flask-SocketIO、带有 Gevent 的 uWSGI 和 Nginx 来开发 WebSocket 项目并将这个应用程序 docker 化。我的应用程序的简单运行很好,但是当我使用 Gevent 添加 uWSGI 和 Nginx 时,它给了我一个错误,即TypeError: 'module' object is not callable。我搜索了互联网,但没有任何有用的材料。我应该怎么做才能解决这个问题?我的烧瓶项目结构是:

运行.py

初始化.py

nginx.conf

uWSGI 配置位于app.ini

在 Docker 容器中运行烧瓶应用程序后,它向我显示了TypeError: 'module' object is not callable下面给出的详细日志。

0 投票
1 回答
41 浏览

flask - 如何将带有socketio的flask部署到heroku并升级到websockets

在本地,它有效。Socketio 升级到 websocket,而不是诉诸轮询。

从日志中可以明显看出:


部署应用程序后,当我使用内容创建 a 时,它会部分工作procfile

web: gunicorn app:app

这里的问题是 socketio 无法升级到 websocket,因此求助于轮询。

这是一个 gif,展示了它在生产中没有升级到 websockets 而是诉诸垃圾邮件轮询


我的文件结构是


这就是我初始化socketio的方式

注意我没有设置async_mode这是这个 SO-question 的问题


如何将带有 socketio 的烧瓶应用程序部署到 Heroku 并将其升级到 websockets?

我认为问题在于我只是没有使用正确的 procfile 命令来启动部署中的应用程序。