Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re[2]: Comet
Клиент не может увидеть первый кусок со случайного байта. Только с
аккуратно отпиленного и отшлифованного края :) . Бакенд отдает данные
законченными пакетами. То есть, новый клиент может начать получать
информацию с последнего пакета, но этот пакет байтов будет обязательно
целостным.
А вот насчет "не успеет выгребать" - как-то я подзабыл. Но мысль
делать маркирование, буферирование и скипанье на уровне nginx мне
почему-то не нравится. По-моему, было бы красивше спрашивать по
служебному каналу количество пакетов в очереди, и если глобальный
затор - переподключаться. Это реализуется на уровне JS. Я плохо
понимаю, как вы скипанье реализуете на уровне модуля, сохранив при
этом универсальность.
>> Тут мы в тонкости реализации впадаем. Честно говоря, не помню, как
>> именно браузер обрабатывает непрерывные потоки. Вроде, если в JS
>> оборачивать, то оно автоматом напилится, потому что при завершении
>> очередной обертки JS автоматически выполнится. Добавит, например, еще
AT> Если клиент может увидеть поток со случайного байта, то первый кусок
AT> в лучшем случае будет синтаксически некорректным, а в худшем - испортит
AT> визуализацию/JS-интерпретатор/еще какую фигню.
AT> Поэтому входной поток должен быть попилен на куски (разделителями),
AT> а мультиплексор должен уметь буферизовать один кусок. И отдавать клиенту
AT> всегда целыми кусками (+, вероятно, какую-то преамбулу, которая может
AT> быть как общей для всех клиентов, так и частной для каждого).
AT> Более того, если клиент не успевает выгребать, ему нужно скипать целыми
AT> кусками.
>> чаты - штука простая (если на них несколько лет угробить :). Меня вот
>> интересует, что еще можно кометом сделать, чтобы смысл был. По http
>> кроме чатов/мессенджеров ничего в голову не приходит. Вот с демонами
AT> http - это транспорт. В него можно много интересного завернуть.
AT> Кстати, если я правильно помню это дао, из ЖЖ можно (было) брать полный
AT> поток постов в реалтайме (и еще оно временами говорило, сколько не
AT> сумел выбрать :)
AT> Alex
|