2009-06-07 4 views
31

Я создаю веб-приложение, которое имеет в реальном времени фид (аналогично новостной ленте Facebook), который я хочу обновить с помощью механизма длительного опроса. Я понимаю, что с Python мои решения в значительной степени могут использовать Stackless (построение из своего примера Comet wsgi) или Cometd + Twisted. К сожалению, очень мало документации по этим параметрам, и я не могу найти хорошую информацию в Интернете о пользователях серийных комет на Python.Python Comet Server

Кто-нибудь успешно реализовал комету на Python в производственной системе? Как вы это сделали, и где я могу найти ресурсы для реализации своих собственных?

ответ

9

Я рекомендую использовать StreamHub Comet Server - его используемый многими люди - лично я использую его с несколькими сайтами Django, которые я запускаю. Вам нужно будет написать небольшой бит Java для обработки потоковой передачи - я сделал это, используя Jython. Передний конец кода некоторый реальный простой Javascript а-ля:

StreamHub hub = new StreamHub(); 
hub.connect("http://myserver.com/"); 
hub.subscribe("newsfeed", function(sTopic, oData) { alert("new news item: " + oData.Title); }); 

документация довольно хорошо - у меня были подобные проблемы, как вы пытаетесь начать работу с редкими Документов Cometd и др.Для начала я прочитал Getting Started With Comet and StreamHub, скачать и посмотреть, как некоторые из примеров работы и ссылки на API документацию, если вам нужно:

2

Я этого не сделал, но this guy имеет и пишет хорошую статью об этом, с примерами и указателями Django (которые я еще не проверил) в другие рамки.

4

Я сделал тонны API, используя скрученные для таких вещей, большинство из которых доступны на моей учетной записи github.

Большинство клиентов на стороне клиента, но slosh - это сервер, на котором я написал, чтобы сделать в реальном времени дешевый pubsub. Он масштабируется несколько горизонтально для чтения, позволяя простое репликации потока. Записи немного отличаются, когда вы придерживаетесь простого HTTP, но я сделал для этого приличную сумму для демонстрации.

В противном случае у вас есть полнофункциональный BOSH, который поддерживает большинство серверов XMPP, и позволит вам отделить распространение сообщений от веб-интерфейса.

13

Orbited кажется хорошим решением. Не пробовал, хотя.


Update: что изменилось за последние 2,5 года.

Теперь у нас есть веб-порты во всех основных браузерах, кроме IE (естественно) и пара очень хороших абстракций над ним, которые обеспечивают множество методов эмуляции связи в реальном времени.

+0

Недостатком орбитали является слишком мало документации. –

+0

Орбит и ссылка кажется мертвой? Теперь он ведет блог о историях здорового образа жизни и других подобных вещах. – twity1337

6

Вот дневная показанный пример объединения Django, Orbited и Twisted для создания приложения реального времени (Comet): http://github.com/clemesha/hotdot с использованием Python.

1

решения на орбите и redis приятны, но не более актуальны, когда у вас есть что-то вроде PubSubHubbub, выпущенного google. Это позволяет легко быть издателем или подписчиком для данного фида. http://code.google.com/p/pubsubhubbub/

+4

PubSubHubbub - это не комета. –

 Смежные вопросы

  • Нет связанных вопросов^_^