Я пишу небольшой демонстрационный веб-сервис.
Я хочу использовать этот веб-сервис для предоставления периодических обновлений потребителю сервиса.
Я должен отметить, что меня интересует только уровень высокого уровня (то есть HTTP и Javascript).Меня не интересует, как генерируются HTTP-команды или динамический JavaScript.Меня интересуют базовые концепции этого механизма, и я не хочу связываться с конкретным языком реализации (я мог бы решить использовать C / C ++, PHP, Python, C #, Java, Ruby или даже Lua, поэтому лучше оставить егоспецифические для языка аспекты).
Это последовательность событий в типичном сценарии использования:
Потребитель сначала делает первичный запрос через AJAX HTTP GETкомандой
служба отвечает первым набором данных
через произвольное время служба отправляет больше данных клиенту
если больше нет доступных данных, служба отправляет последние данные клиенту и сообщает клиенту, чтобы они эффективно прекратили «опрос» или «прослушивание» новых поступлений данных
IIRC, необходимое поведение (как описано выше), может быть достигнуто путем:
- вставки скрытого фрейма на страницу потребителя сервиса
- , генерирующего ответ JSONс серверакоторый содержит как последние данные, так и динамический Javascript, который вставляется в скрытый фрейм.Javascript на стороне клиента «опрашивает» сервис на наличие новых данных
- . Окончательные данные из сервиса больше не содержат динамический Javascript, таким образом, эффективно предотвращая непрерывный опрос клиента
.Может ли кто-нибудь объяснить правильные (передовые практики) шаги, необходимые для реализации описанного выше поведения?
[Редактировать]
Как вы понимаете, это форма (облегченный серверный пуш.Я знаю о Comet и т. Д., Но они слишком неуклюжи / тяжелы для моих нужд (плюс они требуют дополнительного стороннего программного обеспечения и т. Д.).Я просто хочу накатить свою собственную облегченную версию, используя Javascript и HTTP.