Как использовать длительный опрос (желательно без кометы или node.js)?


Предположим, что я синхронизирую текст на HTML-странице, хранящейся в локальном хранилище, с компьютера A на компьютер B. Когда пользователь редактирует текст на компьютере A, я отправляю запрос на сервер и сообщаю ему, какой текст изменился. Есть ли какой-нибудь способ заставить сервер сообщить компьютеру B, что появился новый текст, без того, чтобы компьютеру B приходилось постоянно проверять? Я читал о Комете, но стараюсь не пользоваться никакими библиотеками. Есть ли способ? Кроме того, если вы собираетесь предложить Comet, не могли бы вы дать простой пример использования простого JavaScript и Comet?

У меня была идея, но я не знаю, сработает ли она. На компьютере B я отправляю запрос один раз и позволяю файлу сервера задерживать ответ до тех пор, пока не появится какой-нибудь новый текст. Таким образом, это было бы похоже на длительный опрос, но запрос в конечном итоге закончится. Если бы был способ установить время ожидания равным никогда, это было бы намного проще. Итак, у кого-нибудь есть какие-нибудь идеи?

P.S. - Я хочу использовать только JavaScript и PHP и стараюсь избегать использования библиотек. Еще, если вы знаете библиотеку, которая может сделать это с помощью JS и PHP, пожалуйста, все равно скажите мне.

Кроме того, я знаю, что были подобные вопросы, но ответы, которые я там нашел, не были удовлетворительными.

О, и если кто-нибудь знает, как работает этот чат, не могли бы вы рассказать мне и об этом?

Tl;dr: Я хочу отправить запрос с сервера на HTML-страницу или попросить HTML отправить один запрос, который сохраняется до тех пор, пока не будет создан соответствующий ответ.

Author: Some Guy, 2011-08-05

1 answers

Comet - это реализация длительного опроса.

Проблема в том, что хост-машине необходимо сохранить все ресурсы, доступные для всех открытых запросов. Серверы должны быть тщательно настроены, чтобы обеспечить бесперебойную работу под нагрузкой. Это не решение "из коробки".

Еще один недостаток заключается в том, что каждый пользователь должен быть привязан к определенному серверу, поэтому нет простого способа балансировки нагрузки запросов.

Придерживаться периодического опроса часто является лучшим выбором.

 2
Author: Diodeus - James MacFarlane, 2011-08-05 15:22:20