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

objective-c - objective-c SocketIO 客户端无法连接到 gevent-socketIO 服务器

我正在使用 object-c socketio( https://github.com/pkyeck/socket.IO-objc ) 连接到我的 gevent-socketIO 服务器,它适用于我的网页。

客户

服务器

DJ 日志

服务器套接字 2014-01-25 18:22:01,542 [INFO] root: 连接完成

NGINX 日志

那么这里有什么问题呢?

在客户端

永远不会被调用。并且程序总是在几秒钟后跳转到以下内容。

0 投票
0 回答
118 浏览

python - gevent socketio 如何写入客户端是阻塞调用

我知道从客户端读取会阻塞调用,因为我们必须等待用户的输入。但是,如何写入客户端是阻塞调用?而且,如果我发送两条客户端消息,假设使用 gevent socketio put_client_msg 模块的 msg1 和 msg2,它们将以什么顺序到达客户端?

谢谢,拉姆。

0 投票
1 回答
6951 浏览

sockets - Nginx 和 Flask-socketio Websockets:活着但不是消息传递?

我在让 Nginx 与 Python Flask-socketio 库(基于 gevent)很好地配合时遇到了一些麻烦。目前,由于我们正在积极开发,我正试图让 Nginx 仅作为代理工作。对于发送页面,我可以通过直接运行 flask-socketio 应用程序或通过 gunicorn 运行来实现这一点。一个障碍:websocket 消息传递似乎不起作用。页面已成功托管和显示。但是,当我尝试使用 websockets 时,它们不起作用。它们足够活跃,以至于 websocket 认为它已连接,但它们不会发送消息。如果我删除 Nginx 代理,它们确实可以工作。当我尝试发送消息时,Firefox 给我这个错误:

Firefox 无法在 ws:///socket.io/1/websocket/ 处建立与服务器的连接。

网址是服务器所在的位置,唯一 ID 只是一堆随机数字。它似乎足以保持连接处于活动状态(例如,客户端认为它已连接),但无法通过 websocket 发送消息。我不得不认为这个问题与代理的某些部分有关,但是在调试问题可能是什么时遇到了很大的麻烦(部分是因为这是我第一次使用 Flask-socketIO 和 nginx)。我用于 nginx 的配置文件是:

我将配置文件作为一般示例和 websocket 特定示例的混合体,但试图摆弄它并没有解决问题。另外,当我在 wsgi 模式下使用 Flask app.wsgi_app 时,我正在使用 werkzeug Proxy_Fix 调用。然而,我已经尝试过,不管有没有,都无济于事。如果有人有一些见识,我将全神贯注。

0 投票
1 回答
416 浏览

gunicorn - 使用 gevent socketio 时连接太多

使用 gevent socketio 时,我得到了太多的连接 (1040)。我现在正在使用猴子补丁。我可以限制创建的线程(greenlets)的数量并让一些作业共享线程吗?我正在使用 gunicorn 和 django。

0 投票
1 回答
279 浏览

python - 使用一个服务器进程从 Django 应用程序推送通知

我有一个由 Gunicorn 提供的 Django 应用程序。我想向它添加 WebSocket 通知,使用 PostgreSQL 作为消息队列,使用gevent-socketiotorndio作为 WebSocket 服务器。

我可以使用相同的 Gunicorn 进程来服务 WebSocket 吗?或者,我是否需要另一个运行 gevent'sSocketIOServer或 torndio's 的进程SocketServer

0 投票
0 回答
201 浏览

python - 对 Apache 和 socketio Web 服务器使用相同的 SSL 证书用于相同的应用程序

我正在编写一个内部应用程序,其中我的主 Web 服务器是 Apache Web 服务器,它托管通过 HTTPS 访问的主 Web 门户。证书是自签名证书,网站不会通过互联网访问,但 VPN 可以。

在我的应用程序中的一个网页上,我再次使用 HTTPS 但在不同的端口上建立与基于 socketio 的服务器的单独连接。主 URL 和 socketio 的 URL 的主机名相同。

如果我对两个 URL 使用两个不同的 SSL 证书,一切都会好起来的。但是,如果我尝试使用相同的 SSL 证书,应用程序将无法连接到套接字 io 服务器。

我想为两个 URL 使用相同的证书(相同的主机,不同的端口)。不可能吗?

我通过 gevent socketio 在后端收到以下错误。

0 投票
1 回答
395 浏览

python - django 上的 gevent-socketio 中的多个命名空间

我设法制作了一个类似于 gevent-socketio 的 django 聊天示例的应用程序。但是,当我在 sockets.py 中添加命名空间(类)时,出现 socketio 错误:'no_such_namespace'。

我需要添加

在我看来,但后来我有以下 KeyError:

0 投票
1 回答
658 浏览

python - gevent.monkey.patch_all() 之后的 max_user_connections

我正在将 gevent-socketio v0.13.8 用于基于 django 的 Web 应用程序上的聊天应用程序。我的数据库是 MySql 并且有一个 max_user_connection = 1500 值。我的套接字服务器是用 python 守护进程守护的。我在没有猴子补丁的情况下使用套接字服务器,它运行良好,除了在 greenlet 上出现错误时,所有系统都因 SystemExit 而失败,并且无法再建立连接。解决方案是重新启动所有服务器。

但是我不想每次都重新启动服务器。最后我想出了猴子修补的想法。我不知道它是否与我的问题有关,但我希望我的套接字服务器能够运行,即使未处理的异常导致 Greenlet 上的 SystemExit 也是如此。

然后我在我的服务器启动函数中使用了 gevent.monkey.patch_all() 。这是我现在的主要问题: 3-4 次连接后,MySql 导致以下错误:

max_user_connection 变量在 mysql 服务器中设置为 1500。我认为有些东西在greenlets中创建了与数据库的新连接。

顺便说一句,我使用时不会出现 max_user_connection 错误:

代替:

有没有办法使用猴子补丁而不会出现此错误?如果我忘记提供有关问题定义的任何信息,请告诉我,我会立即更新

这是我的守护服务器代码:

0 投票
0 回答
1513 浏览

websocket - gevent-socketio - WebSocket 握手期间出错:意外的响应代码:401

我正在开发一个可以从使用 websocket 中受益的金字塔实时应用程序。我发现 gevent-socketio 库可能最适合我的目的。

在我的 PC 上进行本地测试时,使用了 websocket 传输并且运行良好。但是,在服务器上进行测试时,握手失败并报告 401 响应。然后它回退到一个长轮询传输,它有效,但我真的会从 websocket 的速度中受益。

这让我相信发生了某种授权问题,因为我不再连接到本地机器,但我完全不知道在哪里寻求帮助。

编辑:

现在问题被缩小到我们使用 mod_proxy(一个 lighttpd 模块)来实例化服务器以进行开发和生产的事实。是否有任何解决代理的方法,或者我们是否必须放弃服务器实例化的想法?理想情况下,我们希望有某种方式授权用户访问我们的开发服务器,这就是我们使用 mod_proxy 设置它的方式。

0 投票
0 回答
55 浏览

python - 使用 flas-socketio 进行多浏览器聊天

我正在尝试创建一个简单的多浏览器聊天 Web 应用程序。我以为我完成了它的创作。但是当我尝试运行它时,我得到 500 状态和

不太确定为什么会发生这种情况。我正在 Flask 中做这个项目,我目前正在同时学习。因为我目前正在学习 Flask 和 Flask-socketio 和 websockets。

闲聊.py:

索引.html: