Под HTTP Streaming Comet я подразумеваю варианты «навсегда iframe» / «навсегда xhr», которые не закрывают соединение после того, как данные были отправлены с сервера, в отличие от стандартного опроса и длительного опроса, которые закрывают и повторно отправляют новый запрос для каждое событие отправки сервера.
Я посмотрел на пакет dojo.io.cometd и, похоже, у них есть только реализации опроса. Я также нашел этот пример, но, похоже, он не работает в webkit даже после изрядной работы (я заставил его работать везде). Это объявление из сафари-блога, кажется, предполагает, что это возможно с xhr, но я не смог найти ни кода, ни документации, ни заставить его работать.
Кто-нибудь знает о методе, сценарии, библиотеке или демонстрации, которая выполняет комету потоковой передачи HTTP в браузерах Webkit (Safari и Chrome)?
Обновлять
Немного поработав, я обнаружил, что нужно сделать две вещи, чтобы заставить HTTP-потоки работать в Safari через XHR:
Обновление 2
Наконец-то я заставил его работать во всех браузерах, используя технику iframe. Предостережение к решению заключается в том, что только браузеры на основе WebKit должны получать заголовок multipart / x-mixed-replace.
@Leo: Можно ли поделиться фрагментами кода, которые включили Http Streaming во всех браузерах? Это должно быть полезно для меня и сообщества. Спасибо.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Согласно Википедии, комета HTTP Streaming должна быть возможна в каждом браузере. «Макет страницы с фреймами, которых нет», Ajax: The Definitive Guide. O'Reilly Media, pp. 320. ISBN 0596528388 - это ссылка, которая цитируется для этой информации, так что, возможно, в этой книге есть предложение, как это сделать.
Также http://meteorserver.org/ имеет демонстрацию, которая, как я только что подтвердил, работает в Chrome, библиотеки на стороне клиента + сервера, который отправляет данные клиенту.
Это определенно возможно: это делает GMail. Если вы посмотрите раздел «Ресурсы» инструментов разработчика в последней версии Webkit, вы сможете увидеть его в действии. У них есть запрос под названием «привязка», который остается открытым более или менее неопределенно долго. Насколько я понимаю, когда приходит новая почта, она сталкивается с этой связью.
да.
Вам нужно включать большое количество (не менее 256 байт) мусора в начале ответа, чтобы Safari работал.
Хотя это старый пост, я немного поискал и нашел следующие статьи действительно полезными. http://www.shanison.com/2010/05/10/stop-the-browser-%E2%80%9Cthrobber-of-doom%E2%80%9D- while-loading-comet-forever-iframe/
Без «multipart / x-mixed-replace» вы все равно можете получить работу с потоковой передачей HTTP в Safari. Вам просто нужно сделать синтаксический анализ самостоятельно.