Как выглядит сценарий длинного опроса и как его реализовать, [закрыто]
Все. У меня есть сайт с небольшим чатом, и мои пользователи все больше съедают мою пропускную способность, и после того, как я искал какое-то чудо, я наконец наткнулся на что-то сексуальное:) называется, длинный опрос из того, что я понимаю,
Это простой метод, который должен поддерживать связь между нами. сервер / клиент UN-interapted в течение более длительного периода времени, и, делая таким образом, сокращается потребность в продолжении запросов на 90%.
Теперь я могу ошибаться. но как создается эта "простая" вещь? Ниже вы можете увидеть мой скрипт чата, который я создал из учебника с помощью Jquery. Он прекрасно работает, но без возможности лонгполлинга.
Вот кодPHP и Javascript (я не могу вставить их сюда, так как они слишком длинные).
Теперь вопрос в том, как мне внедрить сценарий long poll в мои уже построенные коды?
1 ответ:
Я не читал ваш код, но вот крошечный пример:
function waitForNotification() { $.ajax(url, { timeout: 60000, success: function(e) { //do want you want with e //and call function again: waitForNotification(); } }); }
На стороне сервера вам нужно собрать все запросы ajax (on
url
) и выпустить ответ только тогда, когда новое сообщение было опубликовано. Очевидно, что метод на стороне сервера сложнее реализовать и полностью зависит от архитектуры вашего сервера (вы можете использовать реализацию COMET).Если вы реализуете его самостоятельно, будьте осторожны, ведь новое сообщение
m
может быть отправлено, пока клиент обрабатываетsuccess
событие (и пропускает уведомлениеm
).Настройте ajax-запрос по своему усмотрению (обрабатывайте другие события).
Интересно:
- COMET и PHP
- CometD (COMET interface for PHP)