ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Comet



Hello Alex,

Вероятно  nginx может слушать какой-то ещё хост/ip/порт и принимать
на него  все  запросы,  которые  приходят от постящих в чат месаги,
затем прокидывать их на бэкенд, который будет что-то отвечать. Но
этот ответ бэкенда улетит в другой блок server{...}, в котором висит
куча юзеров, "медленно  качающих"  не кончающуюся страничку. Т.е.
приходит запрос к одному server{}, а отдаётся через другой.

Тут же основной вопрос - что делать со свежими юзерами. Просто
буферизовать
последние N килобайт и отдавать подключенному это ? Мне кажется, что
"просто" не получится, а придется в поток вставлять какие-то метки
и уметь на стороне nginx на основании этих меток сформировать
правильный
ответ.

"Просто", безусловно не получится (с учётом приватных сообщений и пр.), но зачем вообще с этим заморачиваться на уровне nginx-а? Есть бэкенд, который всегда может выбрать N последних сообщений для данного юзера, и выдать их в ответ на подсоединение. А дальше это соединение остаётся висеть, и обслуживается на общих основаниях.

Во всяком случае, в предложенной мной схеме проблем не возникает ни разу. Не знаю, как тут правильно дать ссылку на сообщение, сошлюсь на веб-версию: http://article.gmane.org/gmane.comp.web.nginx.russian/11224, http://article.gmane.org/gmane.comp.web.nginx.russian/11238

Т.е. сама идея мультиплексора, от backend один поток, а к юзерам -
много, мне кажется неплохой, но что с ней делать в "общем виде" - не
понимаю.

Алексей Тутубалин
mailto: lexa@xxxxxxx
Web: http://www.lexa.ru/lexa


--
С уважением
Давид Мзареулян
david@xxxxxxxx






 




Copyright © Lexa Software, 1996-2009.