Как предоставлять AJAX периодические обновления от веб-службы RESTful? - PullRequest
0 голосов
/ 22 декабря 2010

Я пишу небольшой демонстрационный веб-сервис.

Я хочу использовать этот веб-сервис для предоставления периодических обновлений потребителю сервиса.

Я должен отметить, что меня интересует только уровень высокого уровня (то есть HTTP и Javascript).Меня не интересует, как генерируются HTTP-команды или динамический JavaScript.Меня интересуют базовые концепции этого механизма, и я не хочу связываться с конкретным языком реализации (я мог бы решить использовать C / C ++, PHP, Python, C #, Java, Ruby или даже Lua, поэтому лучше оставить егоспецифические для языка аспекты).

Это последовательность событий в типичном сценарии использования:

  • Потребитель сначала делает первичный запрос через AJAX HTTP GETкомандой

  • служба отвечает первым набором данных

  • через произвольное время служба отправляет больше данных клиенту

  • если больше нет доступных данных, служба отправляет последние данные клиенту и сообщает клиенту, чтобы они эффективно прекратили «опрос» или «прослушивание» новых поступлений данных

IIRC, необходимое поведение (как описано выше), может быть достигнуто путем:

  1. вставки скрытого фрейма на страницу потребителя сервиса
  2. , генерирующего ответ JSONс серверакоторый содержит как последние данные, так и динамический Javascript, который вставляется в скрытый фрейм.Javascript на стороне клиента «опрашивает» сервис на наличие новых данных
  3. . Окончательные данные из сервиса больше не содержат динамический Javascript, таким образом, эффективно предотвращая непрерывный опрос клиента

.Может ли кто-нибудь объяснить правильные (передовые практики) шаги, необходимые для реализации описанного выше поведения?

[Редактировать]

Как вы понимаете, это форма (облегченный серверный пуш.Я знаю о Comet и т. Д., Но они слишком неуклюжи / тяжелы для моих нужд (плюс они требуют дополнительного стороннего программного обеспечения и т. Д.).Я просто хочу накатить свою собственную облегченную версию, используя Javascript и HTTP.

1 Ответ

0 голосов
/ 22 декабря 2010

Я думаю, вы хотите исследовать Комета . "Технология Push" и "серверный push" - это более широкие термины для такого рода вещей.

...