python-socketio vs Gevent-socketio

时间:2018-02-08 09:34:50

标签: python socket.io gevent-socketio python-socketio

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

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

来自python-socketio doc

  

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

来自gevent-socketio doc

  

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

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

我想选择其中一个(或者如果有一个比我不知道的更好的库)。

我的考虑因素如下:

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

  2. 我的项目很匆忙,我想使用更方便的lib,编写更少的代码来实现我的要求。

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

    谁可以给我建议为我选择最好的图书馆?

2 个答案:

答案 0 :(得分:4)

很抱歉这么晚回答这个问题。我是python-socketio的作者和维护者,所以我将给您有偏见的答复。

gevent-socketio项目已有一段时间没有得到维护。截至今天,repository on GitHub上的最新提交时间是大约2.5年前的2016年9月。此软件包支持的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客户端。

希望这会有所帮助!

答案 1 :(得分:0)

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

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