PHP и XMPP в обе стороны - PullRequest
       20

PHP и XMPP в обе стороны

0 голосов
/ 07 января 2011

Я пытаюсь создать веб-приложение с PHP и XMPP. Одно из требований заключается в том, что когда клиент Javascript в браузере отправляет событие на сервер через XMPP, PHP начинает работать и обслуживает этот запрос. Как вы знаете, XMPP позволяет своим клиентам «прослушивать» различные типы событий и переходить к жизни, когда они находят нужное событие. Конечно, PHP работает только во время HTTP-запроса, поэтому, согласно моим исследованиям, клиенты XMPP PHP являются «односторонними», то есть они могут только генерировать события, а не прослушивать и потреблять их.

Мои вопросы к экспертам: 1. Правильно ли мое исследование? Является ли PHP / XMPP только односторонним? 2. Есть ли способ обойти эту проблему с PHP? 3. Имеет ли Ruby on Rails ту же проблему, или он работает с XMPP «в двух направлениях»?

Большое спасибо, я ценю любую помощь в этом!

Приветствия

Ответы [ 2 ]

1 голос
/ 08 января 2011

Похоже, вы пытаетесь использовать PHP в качестве сервера XMPP, что может быть проблематично. Это возможно в Rails, но не идеально.

Возможно, стоит взглянуть на одну из многих платформ XMPP с открытым исходным кодом, такую ​​как ejabberd .

0 голосов
/ 08 января 2011

Я не совсем понял, что именно вы подразумеваете под «односторонним использованием PHP / XMPP». Тем не менее, по моему опыту, нет никаких ограничений, если вы решите работать с комбинацией PHP + XMPP, когда клиенты вашего браузера используют какую-то библиотеку xmpp javascript.

Вот как обычно будет выглядеть поток при установке PHP / XMPP:

  1. Браузер отправляет опрос ajax
  2. PHP-скрипт на вашем веб-сервере получает этот опрос ajax
  3. Внутренний PHP-скрипт общается с конечной точкой Bosh
  4. PHP-скрипт ожидает ответа от сервера до истечения времени ожидания
  5. При получении ответа или тайм-аута PHP ретранслирует ответ от конечной точки Bosh на ваш клиент браузера

В этом потоке PHP-скрипт действует как менеджер соединений между вашим браузером и сервером jabber. Действительно, при высокой нагрузке эта методология не рекомендуется, потому что скоро ваш веб-сервер может перестать принимать новые опросы ajax из-за того, что PHP-скрипты уже ждут ответа от конечной точки bosh.

Вы можете попробовать пример boshchat.php из библиотеки Jaxl , который демонстрирует точно такой же поток, который я описал выше.

...