Comet

David Mzareulyan david at hiero.ru
Mon Jun 11 13:10:25 MSD 2007


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 at lexa.ru
> Web: http://www.lexa.ru/lexa


-- 
С уважением
Давид Мзареулян
david at hiero.ru








More information about the nginx-ru mailing list