Последняя рекомендация для кометы в Python?
Я собираюсь внедрить комету на Python (хотя я слышал хорошие вещи об erlycomet, я не волнуюсь о поддержке веб-сервера на основе Erlang в дополнение ко всему остальному в нашем конце). Я нашел несколько возможностей:
(есть и другие варианты, которые взаимодействуют с серверами Java, но меня это не интересуют)
Может ли кто-нибудь сделать рекомендацию среди этих реализаций, учитывая производительность, сообщество и простоту реализации?
Ответы
Ответ 1
Я лично использую Orbited, потому что я уже использую Twisted и потому что он кажется зрелым. Twisted имеет приятную долгую историю со многими пользователями, особенно по сравнению с Diesel и Tornado. Орбита действительно построена на Twisted.
Существует хорошая запись в блоге, охватывающая сквозное решение по орбите здесь. Он отправляет данные с python script на сервер STOMP (MorbidQ) на Orbited в Javascript - рендеринг этих данных в виде графика.
Торнадо кажется довольно новым для сцены, я не мог найти извилистую комету, и я не слышал о дизеле. Мне особенно нравится способ, которым Orbited может перенаправить любой тип tcp/ip, но упрощает привязку клиентов javascript с сообщением, передающим серверную копию STOMP.
Ответ 2
Я бы порекомендовал Orbited, если вы хотите написать приложение Comet.
Что делает комету более сложным для реализации (чем, например, приложение Ajax), заключается в том, что вам нужен как клиент (клиент javascript Comet), так и сервер (асинхронный веб-сервер, такой как Twisted), работающий совместно, и это что вы получаете с Orbited - как клиентом javascript, так и сервером.
Оба Tornado и Diesel предоставляют главным образом часть асинхронного сервера, но не хватает важного кода javascript клиента.
Кроме того, вокруг Orbited существует довольно хорошее сообщество, и несколько человек создают с ним классные приложения, на этих страницах показано несколько таких приложений: http://orbited.org/wiki/Sites
Ответ 3
Я также использовал Twisted. Но вместо Орбита, я использую Nevow.Athena. Это очень просто: узнайте больше, прочитав учебник LiveElement.
Ответ 4
Вы остановились на комете? Почему не WebSockets? Если последнее также является вариантом, я хотел бы передать https://github.com/tavendo/AutobahnPython, который реализует WebSockets в Twisted (документация доступна на http://autobahn.ws/python).
Он совместим со стандартами, имеет основанный на сообщениях базовый API и расширенный API для обработки на основе фреймов/потоковой передачи и многих других полезных свойств.
Ответ 5
Мой ответ на этот вопрос дает пример нажатия на сервер с помощью autobahn, которая IMHO до сих пор является самой удобной платформой WebSocket, основанной на Twisted. Также доступна реализация JS, а также Android.
Comet полностью заменяется WebSocket, и вы должны рассмотреть возможность использования последнего, если вы не планируете поддерживать IE8 и более старые
Ответ 6
попробуйте WebSocket-for-Python
Ответ 7
Торнадо отлично работает, вы можете оценить пример websockets здесь:
https://github.com/Introduction-to-Tornado/Introduction-to-Tornado/tree/master/asynchronous_web_services/websockets