4

我正在选择一个 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服务器,我不确定这是否是我项目部署的限制。

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

4

2 回答 2

10

很抱歉这么晚才回答这个问题。我是python-socketio的作者和维护者,所以我会给你一个有偏见的回应。

gevent-socketio 项目有一段时间没有维护了。截至今天, GitHub 存储库上的最新提交是从 2016 年 9 月开始的,大约是 2.5 年前。此包支持的 Socket.IO 协议版本是 0.x 版本,它是旧版本,与 Socket.IO 1.x 和 2.x 版本完全不兼容。

我的python-socketio项目是由于 gevent-socketio 的开发放缓而诞生的,特别是由于从未收到升级以支持 Socket.IO 协议的 1.x 版本。与我的竞争对手不同,我决定不添加对 gevent 的硬依赖。相反,我有一个插件系统,它允许我支持许多不同的 Web 服务器框架。截至今天,支持扩展到 eventlet、gevent、uwsgi(与 gevent 结合)、asyncio(与 aiohttp、sanic 或任何 ASGI 投诉服务器结合)和 Tornado。这个包支持 Socket.IO 协议的所有 1.x 和 2.x 版本,我确保它可以连接到大多数人使用的官方 JavaScript 客户端。如果有用,还包括一个基于 Python 的 Socket.IO 客户端。

希望这可以帮助!

于 2019-03-15T11:31:03.010 回答
0

你也应该结帐gevent-websocket。我每天都在我的项目中使用它,效果很好。

https://github.com/jgelens/gevent-websocket/tree/master/geventwebsocket

于 2019-03-19T22:36:36.803 回答