2009-03-07 6 views
13

Я хочу переместить данные в браузер через HTTP, не убивая приложение django/python.Выбор и развертывание кометного сервера

Я решил использовать кометный сервер для прокси-запросов между моим приложением и клиентом (хотя я до сих пор не понял его правильно).

Я посмотрел в следующие двигатели: вращался cometd ejabberd молы

Кто-нибудь имел никакого опыта работы с этими серверами и их развертывания? Любое понимание и ссылки на темы были бы замечательными. Спасибо.

ответ

5

Я бы рекомендовал смотреть в Twisted, их twisted.web сервер и кометной проделанной работы на нем в Divmod. Они могут обрабатывать гораздо более параллельные соединения, чем традиционные потоковые или серверы на основе процессов, что именно то, что вам нужно для чего-то подобного. И, да, у меня есть архивированные системы, использующие Twisted для контента COMET, в то время как другие вещи используются для более передних веб-приложений рядом с ним. Это хорошо работает, и каждая часть делает то, что делает лучше всего.

+0

Спасибо за этот ответ. Я тянул свои волосы, пытаясь понять, как объединить django/twisted, когда отдельные серверы - правильный ответ. – DonGar

2

Мне нужно сделать что-то очень похожее. Я нашел это, но не было времени, чтобы посмотреть на него еще правильно:

django_evserver простой HTTP-сервер для приложений Django. Он основан на библиотеке libevent . Основное преимущество django_evserver заключается в том, что он предоставляет методы вытеснения представлений django. Вы можете отобразить сайт в нескольких кусках, каждый из которых может обрабатываться различными видами django.

Используя эту идею, можно использовать django_evserver в качестве кометного сервера для приложений django.

http://code.google.com/p/django-evserver/

+0

+1: Я действительно заинтригован evserver –

2

Если вы можете запускать Java, я бы порекомендовал StreamHub Comet Server.

Во-первых, в связи с тем, что вам не нужно «убивать» существующее приложение, JavaScript-код имеет очень низкий размер при менее чем 10K. Я использую его для подталкивания пользовательских обновлений и чата на сайт социальной сети, который я создаю. Я тестировал с 1000 + хитами в день, и никакого заметного влияния на процессор не было.

Во-вторых, при развертывании я следил за некоторыми примерами и работал очень быстро по сравнению с ударом головой о стену с помощью CometD. Существует хороший Comet Hello World руководство по началу работы и Google Group, если вы застряли на чем угодно.

+0

+1: StreamHub - самый простой в использовании и самый зрелый – DLauer

2

Одним из вариантов является Netty, инфраструктура сокетов клиент-сервер, основанная на Java NIO от JBoss. Для сравнения и обсуждения see here. Сообщается, что он обрабатывает 100000 одновременных открытых соединений на четырехъядерном сервере.

2

Если вы используете IIS, вы можете проверить WebSync (http://www.frozenmountain.com/websync), совместимый с стандартами (bayeux) кометный сервер и клиент для .NET/IIS. Если вам не нужна дополнительная нагрузка, версия On-Demand - это опция SaaS, которая разгружает тяжелый подъем.

2

Если вы хотите, чтобы объединить Django с Comet-сервером (облетел), проверить этот проект я собираюсь интегрировать Django и облетел как «чистый» и «реальный мир», как можно здесь: http://github.com/clemesha/hotdot

Проект адресован «реальным» проблемам, таким как безопасность и протоколирование/фильтрация/изменение передаваемых сообщений Comet и т. Д., Но все еще продолжается.

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

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