Python-socketio против Gevent-socketio

Я выбираю библиотеку Python, чтобы написать страницу функции живого чата, встроенную в мой веб-сайт.

Я нашел две библиотеки, основанные на Socket.IO, python-socketio и gevent-socketio:

Из документа python-socketio:

Реализация на Python сервера реального времени Socket.IO.

Из gevent-socketio doc:

Socket.IO - это абстракция, подобная WebSocket, которая обеспечивает связь в реальном времени между браузером и сервером. gevent-socketio - это реализация протокола на языке Python.

Видите ли, оба являются реализацией Socket.IO.

Я хочу выбрать одну из них (или, если есть библиотека лучше, чем они, я не знаю).

Мои соображения приведены ниже:

  1. Мой бэкэнд-проект python написан фреймворком Django / Django-Rest-Framework.

  2. Мой проект торопится, я хочу использовать более удобную библиотеку, писать меньше кода, чтобы реализовать мои требования.

Я работал в Интернете, gevent-socketio live-чат должен использовать gevent python WSGI сервер, я не уверен, является ли это пределом для развертывания моего проекта.

Кто может посоветовать мне выбрать лучшую библиотеку?


person aircraft    schedule 08.02.2018    source источник


Ответы (2)


Извините, что ответил на этот вопрос так поздно. Я автор и сопровождающий python-socketio, поэтому дам вам предвзятый ответ.

Проект gevent-socketio некоторое время не поддерживался. На сегодняшний день самая последняя фиксация в репозитории на GitHub датируется сентябрем 2016 г., то есть примерно 2,5 года назад. Версия протокола Socket.IO, поддерживаемая этим пакетом, - это выпуски 0.x, которые устарели и полностью несовместимы с выпусками Socket.IO 1.x и 2.x.

Мой проект python-socketio родился в результате замедления разработки gevent-socketio. и, в частности, из-за того, что никогда не получал обновления для поддержки версии 1.x протокола Socket.IO. В отличие от своего конкурента, я решил не добавлять жесткую зависимость от gevent. Вместо этого у меня есть система плагинов, которая позволила мне поддерживать множество различных фреймворков веб-серверов. На сегодняшний день поддержка распространяется на eventlet, gevent, uwsgi (в сочетании с gevent), asyncio (в сочетании с aiohttp, sanic или любым сервером жалоб ASGI) и Tornado. Этот пакет поддерживает все версии 1.x и 2.x протокола Socket.IO, и я уверен, что он может подключаться к официальным клиентам JavaScript, что и используется с ним большинством людей. В случае необходимости также включен клиент Socket.IO на основе Python.

Надеюсь это поможет!

person Miguel    schedule 15.03.2019

Вам также следует оформить заказ gevent-websocket. Я использую его каждый день в своих проектах, отлично работает.

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

person eatmeimadanish    schedule 19.03.2019