问题标签 [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 投票
0 回答
935 浏览

python - 配置 nginx/gunicorn 以实现 websocket 连接的统一负载均衡

独角兽设计说:

对于 WebSocket 请求,这会导致对工作人员的请求的负载平衡不均匀。也就是说,一些工作人员处理的 WebSocket 连接比其他工作人员多得多。您如何处理并获得均匀分布?

我将 geventwebsocket 用于 WebSocket 服务器应用程序。

0 投票
1 回答
104 浏览

python - 如何在“永无止境”的进程中使用线程

我正在尝试将 irc 客户端添加到我正在处理的 django Web 应用程序中。我希望 irc 通信的服务器端代码使用 python 并通过套接字库进行连接。然后,我将使用 gevent-socketio 从 irc 通道向浏览器中的客户端发送和接收数据。到目前为止,我有一个非常基本的 gevent-socketio 服务器和客户端,可用于在多个客户端之间进行实时广播,但是,当我开始将客户端连接到 IRC 时,它们使用从客户端传递的昵称成功连接到 IRC 服务器,但是然后看起来这是正在进行的保持活动/侦听过程正在阻止从客户端发送任何消息。

Python IRC 代码

我知道这个功能是超级基本的,但是一旦我通过客户端让它工作,我就可以扩展它。

我的服务器代码的相关部分基本上如下所示:

当我最终放弃并使用 ctrl-C 时,我看到以下堆栈跟踪,这让我相信我的线程方式是阻塞的。

如果有人知道如何将 irc 进程更改为非阻塞,或者任何一般性建议,他们将不胜感激。

0 投票
1 回答
51 浏览

gevent-socketio - 我可以将 gevent-socketio 与檐口一起使用吗?

我需要一些 web socket 功能来监控一些任务,gevent-socketio 是否适合后端 websocket 实现?我也可以将 gevent-socketio 与金字塔檐口一起使用(在 openshift 上运行)吗?

0 投票
0 回答
364 浏览

python - Python非阻塞子进程输出读取未捕获所有输出

希望有人可以帮助解决这个问题:

问题是这个“似乎”可以工作,但是 traceroute 命令的所有输出都没有被​​捕获,只是其中的一部分。

我在网上找到了大部分内容,所以不完全理解。

基本上我正在努力做到这一点,所以我在后台运行了一个 traceroute 命令,当我从中获得输出时,我想将它从我的网络套接字(socketio)发送到浏览器。

但我不希望它阻止其他操作。

如果这对任何人有帮助,我正在使用 Python Flask/Gevent。

0 投票
0 回答
56 浏览

python - gevent-socketio 中的替代 spawn() 方法

我在项目中使用 gevent-socketio。我需要使用gevent.spawn()带有监听redis队列的函数的方法。它不起作用导致spawn()等待工作功能结束。spawn()gevent-socketio 中是否有任何替代方法?

0 投票
1 回答
333 浏览

django - 键错误:gevent-socketio + django 聊天应用程序实现中的“socketio”

我试图从官方 git 存储库中实现 gevent-socketio django 聊天应用程序的示例。使用 python 2.7.6、django 1.9.2 和 socket.io 1.4.5。@ https://github.com/abourget/gevent-socketio/tree/master/examples/django_chat。服务器运行,但我无法获得任何服务器-客户端连接。我已经从不同的浏览器运行服务器并尝试在它们之间发送消息。但从来没有任何联系。相反,每当我尝试从浏览器连接时,我都会收到此错误

处理 socketio 连接 Traceback 时出现错误异常(最近一次调用最后一次):

文件“/home/razon/gevent-socketio/socketio/sdjango.py”,第 66 行,在 socketio socketio_manage(request.environ, SOCKETIO_NS, request) 文件“/home/razon/gevent-socketio/socketio/ init .py” ,第 67 行,在 socketio_manage socket = environ['socketio'] KeyError: 'socketio'

建议我任何解决方案或建议我任何其他可靠的平台与 django 绑定,以便我可以实现实时多人纸牌游戏与实时聊天。先感谢您。:)

0 投票
0 回答
254 浏览

python - socket.io 在 EC2 上不起作用

我正在做一项新功能,允许在管理页面上显示系统日志。我正在使用 gevent-socketio (0.3.6)。在我的本地机器上一切正常,但是当我将代码部署到 EC2 时,它不起作用。

这是客户端代码:

这就是我在 Firefox 控制台中看到的:

似乎套接字连接成功,但我无法从服务器获取任何东西。

这是我的后端代码:

我添加了一个打印命令来测试,但它不打印任何东西。我已经更新了 Varnish 配置以通过 Varnish 运行 websockets:

我需要在 EC2 或类似的东西上配置任何东西吗?

谢谢你。

0 投票
2 回答
1918 浏览

python - python-socketio vs Gevent-socketio

我正在选择一个 python 库来编写嵌入我网站的实时聊天功能页面。

我找到了两个基于 Socket.IO 的库,python-socketio并且gevent-socketio

来自python-socketio 文档

Socket.IO 实时服务器的 Python 实现。

来自gevent-socketio 文档

Socket.IO 是一种类似于 WebSocket 的抽象,它支持浏览器和服务器之间的实时通信。gevent-socketio 是该协议的 Python 实现。

你看,两者都是 Socket.IO 的实现。

我想选择其中一个(或者如果有比他们更好的图书馆,我不知道)。

我的考虑点如下:

  1. 我的 python 后端项目是由 Django/Django-Rest-Framework 框架编写的。

  2. 我的项目很赶时间,想用更方便的lib,少写代码来实现我的需求。

我上网,gevent-socketio实时聊天必须使用gevent python WSGI服务器,我不确定这是否是我项目部署的限制。

谁能给我建议选择最适合我的图书馆?

0 投票
1 回答
5613 浏览

python - 基本的 flask-socketio 实现不起作用;没有输出或错误

我正在尝试将 socketio 与我的烧瓶项目结合起来。现在我正在尝试从服务器获取简单的“已连接”或“已断开”输出。但是,当我使用“python app.py”运行应用程序脚本时,我没有收到这些消息,也没有任何错误将我指向任何方向。

我从没想过我会错过错误!

应用程序.py

扫描.html

扫描.js

当我运行 app.py 文件并访问“127.0.0.1:5000/scan/”时,我在终端中得到以下输出:

网页正确加载,如果我在虚拟环境中或在虚拟环境中运行它,我会得到相同的输出。

像这样简单的设置,可能有什么问题?先感谢您!

0 投票
0 回答
103 浏览

docker - gevent fd 必须为非负数:-1

我正在使用django-websocket-redis来设置 websocket。还使用 nginx 和 docker。我遵循了用法中提到的内容,尝试从客户端访问服务器时出错。

这是我的 nginx.conf

这里是我的 uwsgi:

这是我用于 websocket 的 uwsgi:

这是我得到的错误。

如果没有 websocket,我的应用程序可以正常工作,这意味着我可以点击 /api 下的 url。