вишневый как сервер gevent-socketio

Я только что начал использовать gevent-socketio и это здорово!

Но я использовал socketioserver socketio_manage по умолчанию и socketio_manage из учебника чата и задавался вопросом, как интегрировать socketio с cherrypy .

в основном, как это сделать:

 class MyNamespace(BaseNamespace):... def application(environ, start_response): if environ['PATH_INFO'].startswith('/socket.io'): return socketio_manage(environ, { '/app': MyNamespace}) else: return serve_file(environ, start_response) def serve_file(...):... sio_server = SocketIOServer( ('', 8080), application, policy_server=False) sio_server.serve_forever() 

в обычный cherrypy server ?

2 Solutions collect form web for “вишневый как сервер gevent-socketio”

Gevent-socketio основан на Gevent и веб-сервере Gevent. Существуют две реализации: pywsgi, который является чистым python и wsgi, который использует реализацию libevent's http.

См. Параграф, начинающийся с «Разница между pywsgi.WSGIServer и wsgi.WSGIServer» здесь:

http://www.gevent.org/servers.html

Только эти серверы являются «зелеными», в том смысле, что они дают управление контуру Gevent. Поэтому вы можете использовать только те серверы afaik. Причина этого заключается в том, что сервер присутствует в самом начале запроса и будет знать, как обрабатывать переговоры по протоколу «Обновление» и протоколы websockets, и он будет передавать значения внутри «среды», чтобы следующий уровень (SocketIO) будет ожидать и знать, как обращаться.

Вам также понадобится использовать пакет gevent-websocket .. потому что он зеленый (и gevent-socketio основан на этом). Вы не можете просто поменять стек websocket.

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

CherryPy не реализует протокол socket.io и не поддерживает WebSocket как встроенный. Тем не менее, существует расширение для CherryPy, называемое ws4py , которое реализует только голый протокол WebSocket поверх своего стека. Вы могли бы начать там, вероятно.

  • Исключение gevent.hub.LoopExit: LoopExit («Эта операция будет заблокирована навсегда»,)
  • сервер websocket для приложения django
  • python Socket.IO-клиент для отправки широковещательных сообщений на сервер TornadIO2
  • Python - Flask-SocketIO отправить сообщение из потока: не всегда работает
  • минимальный пример микрофракции бутылок Python с использованием gevent-socketio и Socket.IO.js
  • Django 1.10 & Socket.IO с Python 3
  • Flask + RabbitMQ + SocketIO - пересылка сообщений
  • Django / gevent socket.IO с redis pubsub. Где я могу поместить вещи?
  • Форматирование сообщений для отправки на сервер socket.io node.js из клиента python
  •  
    Interesting Posts for Van-Lav

    Python: список индексирования для элемента в вложенном списке

    Опция автоинкремента для индекса Pandas DataFrame

    Есть ли доступная документация на разъеме pywin32 odbc?

    Выполнять команды по ssh с помощью Python

    группировка объектов для достижения аналогичного среднего свойства для всех групп

    Панды с rpy2 и многопроцессорность

    Mac OS X El Capitan – Scrapy / Python ImportError: невозможно импортировать имя xmlrpc_client

    Как я нарезаю массив numpy, чтобы получить как первую, так и последнюю две строки

    Как векторизовать функцию, содержащую оператор if?

    Как запросить хранилище HDF с помощью Pandas / Python

    Как создать случайный массив в определенном диапазоне

    Сохранение наложения карт между графиками в matplotlib

    Как сделать нелинейный комплексный поиск корней в Python

    Как я должен учитывать накладные расходы subprocess.Popen () при выборе времени в python?

    SQLAlchemy декларативное свойство из join (отдельный атрибут, а не весь объект)

    Python - лучший язык программирования в мире.