PHP и XMPP в двете посоки

Опитвам се да създам уеб приложение с PHP и XMPP. Едно от изискванията е, че когато Javascript клиентът на браузъра изпрати събитие до сървъра чрез XMPP, PHP започва да работи и обслужва тази заявка. Както знаете, XMPP позволява на своите клиенти да „слушат“ за различни типове събития и да оживяват, когато намерят правилното събитие. Разбира се, PHP е активен само по време на HTTP заявка, така че според моите изследвания PHP XMPP клиентите са само "еднопосочни" - т.е. те могат само да генерират събития, а не да ги слушат и консумират.

Въпросите ми към експертите са: 1. Правилно ли е изследването ми? PHP/XMPP само еднопосочен ли е? 2. Има ли някакъв начин да се заобиколи този проблем с PHP? 3. Ruby on Rails има ли същия проблем или работи с XMPP по "двупосочен" начин?

Благодаря много, оценявам всяка помощ по въпроса!

наздраве


person Ali    schedule 07.01.2011    source източник


Отговори (2)


Изглежда, че се опитвате да използвате PHP като XMPP сървър, което би било проблематично. Вероятно е възможно в Rails, но не би било идеално.

Може да си струва да разгледате една от многото XMPP платформи с отворен код като ejabberd.

person Toby Hede    schedule 07.01.2011
comment
Съгласен, има и други, използвал съм openfire. igniterealtime.org/projects/openfire - person kenny; 08.01.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 библиотека, която демонстрира точно същия поток, който описах по-горе.

person Abhinav Singh    schedule 08.01.2011