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

我发现了两个基于 Socket.IO 的库, python-socketiogevent-socketio :

来自 python-socketio doc :



来自 gevent-socketio doc :



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

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

我的考虑点如下:

  • 我的python后端项目是由Django/Django-Rest-Framework框架编写的。
  • 我的项目很着急,想用一个更方便的lib,写更少的代码来实现我的需求。

  • 我上网查了一下,gevent-socketio直播必须使用gevent python WSGI服务器,不知道是不是我项目部署的限制。

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

    最佳答案

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

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

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

    希望这可以帮助!

    关于python-socketio vs Gevent-socketio,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48682051/

    10-12 18:11