вишневый как сервер 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 поверх своего стека. Вы могли бы начать там, вероятно.

  • Форматирование сообщений для отправки на сервер socket.io node.js из клиента python
  • Регистрация событий сервера с флягой SocketIO
  • gevent-socketio не использует конечную точку @ app.route для socketio
  • gevent-socketio отправить сообщение из темы
  • Как создать клиент Socket.io в Python, чтобы поговорить с сервером Sails
  • минимальный пример микрофракции бутылок Python с использованием gevent-socketio и Socket.IO.js
  • Клиентская библиотека Socket.IO в Python
  • NodeJS - SocketIO через SSL с транспортом websocket
  • Python - лучший язык программирования в мире.