Авто получать новые сообщения в Ajax + PHP - PullRequest
2 голосов
/ 14 апреля 2011

Я хочу написать поток, который автоматически добавляет новые сообщения по мере их поступления. Я не вижу, как это сделать с Ajax, потому что мне придется каждую секунду запрашивать скрипт, чтобы он обновлялся, и это перегрузило бы мой сервер. Кто-нибудь может предложить какие-либо решения для этого? Спасибо:)

Ответы [ 4 ]

2 голосов
/ 14 апреля 2011

Перегрузить ваш сервер? Уверены ли вы? Сколько связей вы планируете поддерживать? Делайте это каждые 2 секунды, и вы сократите свой трафик вдвое, и, скорее всего, никто не заметит.

В противном случае вы смотрите на некоторый стиль Comet, push на стороне сервера, с постоянными подключениями к серверу.

См .:

Долгоживущие соединения (асинхронная передача по серверу) с Apache / PHP / Javascript?

0 голосов
/ 14 апреля 2011

Вы хотите, чтобы Комета долго опрашивала. Комета названа так потому, что, как и Ajax, это бренд моющих средств.

Комета использует тот факт, что браузеры могут иметь два открытых запроса к серверу. Один из этих запросов используется для передачи данных на сервер, например, в ответ на события пользовательского интерфейса, происходящие в браузере.

Другое соединение постоянно подключено к серверу в «длинном опросе». Когда тайм-аут соединения с длительным опросом истекает или отключается, он автоматически восстанавливается клиентом (браузером).

Когда сервер хочет отправить данные клиенту, он немедленно записывает эти данные в ожидающий запрос с длинным опросом и завершает его, что приводит к более быстрому реагированию, чем при традиционном setTimeout() опросе с меньшими издержками.

PHP не идеален для этого. Рассмотрим Nodejs.

0 голосов
/ 14 апреля 2011

Вы можете использовать функцию потоковой передачи

https://github.com/mojolly/jquery.evented_ajax.js#readme

А на самом деле или лучше составить вам ajax-запросы и использовать некоторые методы объединения

http://dev.sencha.com/deploy/ext-4.0-beta2/examples/direct/direct.html

0 голосов
/ 14 апреля 2011

Вы можете попробовать XMPP, если вы хотите больше вещей в режиме реального времени, но если вы хотите только для вышеуказанных требований, то вы можете попробовать node.js

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...