решение для COMET и PHP

Есть ли реальное решение для комбинации COMET и PHP? В принципе, я пришел к выводу, что мне нужно периодически обновлять домашнюю страницу пользователя всякий раз, когда в базе данных появляются новые данные. Насколько я понимаю, мне нужно открыть постоянную связь между моим сервером и браузерами моих клиентов, чтобы обновить содержимое своей домашней страницы сразу после новой информации. доступный без выделения большого количества ресурсов, но мне не удавалось найти что-то ясно из этой проблемы. Я читал много статей, что PHP не является хорошим языком для реализации COMET. Мое веб-приложение полностью запрограммировано в PHP, и я не хочу изучать другой язык, но если меня заставят, предложите ли вы хороший язык для начала? Считаете ли вы, что я могу программировать интерфейс, чтобы справиться с этой проблемой?

Заранее спасибо.

Время, которое я слышал, говорит, что PHP не очень хорошо подходит для COMET (как вы сказали сами) из-за того, как работают веб-серверы и PHP, – в основном, потому что есть один процесс на странице, а это означает, что если вы хотите, чтобы 200 пользователей подключенного к вашему серверу, вам понадобится 200 процессов (которые могут быстро стать проблемой для еще нескольких сотен пользователей) .

Может быть, решением этой проблемы будет использование nginx_http_push_module ?

Я еще не пробовал (пока?) , Но это может быть только то, что нам нужно …

Я работал над школьным проектом и столкнулся с той же проблемой. Поскольку каждый процесс PHP имеет столько накладных расходов на память, что невозможно поддерживать многие подключения в каждом поле. Именно в этот момент я решил переключиться на использование BOSH и XMPP . Это довольно новая «волна» технологий, но уже существует немало библиотек, которые помогут вам на вашем пути. Я бы предложил использовать Strophe и XMPPHP . Тогда ваши клиенты могут подключиться к серверу BOSH (я использую Openfire ) и могут масштабироваться до тысяч активных подключений на сервер.

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

Например, вы можете использовать Quercus (Java-реализация PHP) и реализовать приложение Comet сервера с использованием модели управления памятью JVM.

Есть необходимые решения:

  1. почти COMET-решение (использует php и один файл, написанный с помощью perl): http://translate.google.com/translate?js=y&prev=_t&hl=ru&ie=UTF-8&layout=1&eotf=1&u=http://dklab.ru/ Библиотека / dklab_multiplexor / & сл = RU & TL = еп

  2. точное решение COMET в php (это то, что вы хотите, я думаю): http://translate.google.com/translate?hl=ru&sl=ru&tl=ru&u=http://dklab.ru/lib/dklab_realplexor/

Сначала вам нужно понять, что такое кометное приложение. Концепция, участвующая в создании приложения кометы, объясняется в wiki в Comet (программирование)

Что вам нужно понять, так это то, что вы можете использовать любой язык программирования для создания кометного приложения, если оно следует концепциям, объясняемым в wiki

1.Аякс с длинным опросом

2.Streaming

Вы можете проверить код примера на примере простого «длинного опроса»

Теперь, придя к проблемам –

1. Вы используете длинный опрос ajax, тогда браузер (ajax-запрос) будет продолжать опрос сервера для данных. Это может съесть память на сервере или замедлить работу браузера через некоторое время.

Несколько предложений

JQuery PeriodicalUpdater (длительный опрос / серверный опрос AJAX)

Обработка длинного опроса

RobertFischer / JQuery-PeriodicalUpdater

Что вам нужно проверить, чтобы реализовать это –

a) Как часто вы ожидаете обновления данных на сервере.

б) Сколько времени серверный скрипт будет запускать для проверки, извлечения и обработки данных перед отправкой на клиентскую сторону.

2.Вы можете реализовать потоки, используя следующее:

Как реализовать COMET с PHP

Дольо

Демо-версия Dojo Charting + Lightstreamer Comet

демонстрация

Ajax Push Engine или проект APE

Что вам нужно проверить для этого –

a) Ваш хостинг-провайдер позволит вам установить их на серверы хостинга

b) Использование ОЗУ и полосы пропускания (вам понадобится выделенный сервер с пакетом, который даст вам много ОЗУ и пропускной способности)

Это зависит от того, что и как ваши требования. Вам придется анализировать и подходить.

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

Если у вас есть большое приложение, вы можете пойти на пару.

Ajax с длинным опросом – это простое решение, в jQuery и любых других основных js-системах есть плагины, которые помогут вам в этом.

Node.js кажется довольно приятным решением для подобных вещей. (Тем не менее немного игрового для производства, но все равно прохладно). PHP – это ужасная среда для подобных вещей, вы должны изменить способ взаимодействия сервера с запросами, потому что вы больше не отвечаете немедленно. Python имеет несколько серверов, таких как Twisted, которые отлично подходят для этого, потому что они позволяют вам быть сервером . Независимо от того, на каком языке вы его пишете, вам нужно изменить типичную модель запроса / ответа. (Сервер Grizzly Comet от Glassfish делает это для Java в качестве примера)

Вы должны попробовать Realplexor Дмитрия Котерова , который является кометным сервером, который предоставляет Javascript и PHP API.

Readme.txt на английском языке предоставляется в пакете .