Прежде всего, обратите внимание, что Flask-SocketIO отличается от двух других. Он обертывает протокол Socket.IO, а не raw WebSocket. Это позволяет поддерживать WebSocket-подобный интерфейс, эмулируемый длительным опросом HTTP для клиентов, которые не поддерживают протокол WebSocket.
Говоря о Flask-SocketIO, обратите внимание на то, что это расширение должно пройти капитальный ремонт.
Текущий официальный релиз (0.6) зависит от gevent, gevent-socketio и gevent-websocket. К сожалению, gevent-socketio как проект давно мертв и застрял на очень старой версии протокола Socket.IO, что заставляет вас использовать древний клиент Javascript.
Предстоящий выпуск Flask-SocketIO 1.0 представляет собой полную переписку, которая в основном совместима с версией 0.6, но имеет поддержку Python 2 и Python 3 и имеет дизайн, который позволяет использовать различные механизмы для организации сетей и параллелизма. Зависимость gevent-socketio от версии 0.6 заменяется двумя новыми пакетами: python-socketio и python-engineio, которые реализуют текущую версию протокола Socket.IO и поддерживают все официальные клиенты Socket.IO (Javascript, Swift и C++).
Что касается зависимости низкого уровня, то есть в основном три варианта:
Eventlet
Eventlet на сегодняшний день является наиболее производительным и стабильный вариант, как на py2 и PY3. Поддержка WebSocket является родной для eventlet, поэтому просто установка eventlet в вашем virtualenv позволяет Flask-SocketIO работать в наиболее оптимальной конфигурации.
GEvent и GEvent-WebSocket
Если по какой-либо причине вы предпочитаете GEvent, что также работает, но в моих тестах он не выполняет так же хорошо, как eventlet. Если вы хотите иметь доступ к WebSocket при использовании gevent, вам также необходимо установить пакет gevent-websocket. И gevent, и gevent-websocket были перенесены на Python 3, но все это слишком недавно.
Werkzeug (или любой другой совместимый сервер многопоточный WSGI)
Вы также можете использовать собственный веб-сервер в КОЛБУ. В этом режиме расширение работает только в режиме длительного опроса.Производительность явно ужасна по сравнению с двумя другими, но для разработки и отладки приятно иметь возможность работать все без необходимости запускать eventlet или gevent со всеми сложностями, которые они приносят.
На сегодняшний день (10/4/2015) существует полностью функциональная бета-версия нового расширения Flask-SocketIO. Скоро появится официальный релиз. Вы можете установить бета-релиз:
pip install flask-socketio==1.0b1
код доступен на 1.0 ветви мерзавца репо: https://github.com/miguelgrinberg/Flask-SocketIO/tree/v1.0.
Отказ от ответственности: Я уверен, что это ясно, но на всякий случай, обратите внимание, что я являюсь автором Flask-SocketIO, python-socketio и python-engineio.
Этот вопрос, к сожалению, не по теме, поскольку вы просите рекомендации библиотеки. При этом я думаю, что [autobahn] (http://autobahn.ws/) является одним из наиболее популярных решений для веб-узлов. Также есть [ws4py] (https://ws4py.readthedocs.org/en/latest/). – poke
@poke я четко упомянул **, как использовать websockets с флягой **, а фляга - это основа, основанная на расширении, одна зависит от библиотек. Также вопрос открыт для других (не-колбу-расширений), поскольку он явно спрашивает ** библиотеки **, поэтому кто-то может предложить другие способы –
Я точно понимаю, что вы просите, да, но, как вы сами заявляете: * «ясно запрашивает [для] библиотек "*, и такой вопрос [вне темы в переполнении стека] (http://stackoverflow.com/help/on-topic). – poke