【问题标题】:python-socketio vs Gevent-socketiopython-socketio vs Gevent-socketio
【发布时间】:2018-07-18 19:41:08
【问题描述】:

我正在选择一个 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,少写代码来实现我的需求。

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

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

【问题讨论】:

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


    【解决方案1】:

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

    gevent-socketio 项目已经有一段时间没有维护了。截至今天,repository on 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 客户端。

    希望这会有所帮助!

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2012-11-13
        • 2018-12-22
        • 2012-09-26
        • 1970-01-01
        • 2013-08-21
        • 2012-08-04
        • 2014-02-16
        • 2015-01-09
        • 2011-09-25
        相关资源
        最近更新 更多