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