Настройка Пенджаба для отправки запросов xmpp на Openfire - PullRequest
2 голосов
/ 25 октября 2010

Я пытаюсь использовать менеджер соединений Пенджаб с Openfire.У меня уже работает сервер Openfire.Я также установил Пенджаб, и сервер запускается правильно, что позволяет мне перейти к порту 5280 на локальном хосте.(Хотя http://localhost:5280/http-bind выдает сообщение «ресурс не найден».) Я не уверен, что делать дальше.Я включил параметр в консоли администратора openfire в разделе «Диспетчеры соединений», который говорит: «Диспетчеры соединений могут подключаться к этому серверу».

Как настроить пенджаб для соединения с сервером xmpp?

До сих пор я напрямую устанавливал соединение bosh с сервером, используя xmpp stophe lib и модуль прокси в apache.Теперь я хочу использовать пенджаб.

Ответы [ 4 ]

1 голос
/ 21 декабря 2010

@ Joe:

Я думаю, что вы должны написать плагин Strophe.js, который бы добавил правильный атрибут маршрута (route = 'xmpp: dev.mydomain.com: 5222') к вашим запросам xmpp.Я постараюсь помочь вам в этом, когда вернусь с работы.

Похоже, ваше приложение может говорить с пенджабом, но Пенджаб не знает, куда направлять ваши запросы xmpp.

Хороший способ понять, почему ваше приложение зависает при подключении, это прочитать: http://xmpp.org/extensions/xep-0124.html поиск битов о маршруте:)

1 голос
/ 04 ноября 2010

У меня вчера был тот же вопрос, и я смог его решить.

Это правильно - вам не нужно никаких настроек пенджаба. По умолчанию пенджаб будет работать через порт 5280. Пенджаб автоматически направляет строфы на нужный сервер.

<body rid='123' xmlns='http://jabber.org/protocol/httpbind' to='yourdomain.tld' xml:lang='en' wait='60' hold='1' content='text/xml; charset=utf-8' ver='1.6' xmpp:version='1.0' xmlns:xmpp='urn:xmpp:xbosh'/>

Это раздел, используемый для настройки соединения через BOSH. Вы можете увидеть атрибут «до». Из этого Пенджаб может узнать, с каким XMPP-сервером следует разговаривать.

Забудьте о настройке менеджера соединений в Openfire. Вы можете оставить эту функцию полностью отключенной. Это связано с тем, что Пенджаб использует обычное XMPP-соединение с Openfire - как и обычный клиент - он использует порт по умолчанию 5222.

Так что все, что вам нужно сделать, это

  • скажи пенджабу, какой URL слушать
  • BOSH-запросы прокси к этому URL на пенджабском порту по умолчанию 5280

Скажите Пенджабу, какой URL слушать

В файле punjab.tac есть строка с надписью

root.putChild('bosh', b) # url for BOSH

Таким образом, 'bosh' будет частью URL-адреса, на который strophe должен отправлять свои строфы, тогда это будет http://www.yourdomain.tld/bosh. '/ bosh' также может быть '/ http-bind' или '/ xmpp-httpbind ', но ваш файл punjab.tac должен это знать.

BOSH-запросы прокси к этому URL на пенджабском порту по умолчанию 5280

Затем ваш веб-сервер должен обработать запросы, направленные к '/ bosh', и проксировать их для пенджаба на порту 5280. Предположим, что вы используете Apache, тогда в конфигурации вашего виртуального хоста что-то подобное выполнит работу:

<IfModule proxy_http_module>
    ProxyRequests Off 
    ProxyPass /bosh http://localhost:5280/bosh
    ProxyPassReverse /bosh http://localhost:5280/bosh
</IfModule>
1 голос
/ 06 ноября 2010

Я сделал то же самое, и это сработало на моем конце тоже.Спасибо за подробное объяснение.

Чтобы добавить к этому, основной причиной путаницы в моем случае было то, что я использую разные виртуальные хосты для разных проектов, и несколько проектов используют один и тот же сервер xmpp.Более того, хотя сервер установлен на localhost, он не называется localhost.Поэтому, если кто-то сталкивается с подобными проблемами, вам нужно добавить route = 'xmpp: server: port' (например, route = 'xmpp: 127.0.0.1: 5222' в моем случае) ко всем запросам, в противном случае Пенджаб не сможет направитьразделы автоматически на сервер

0 голосов
/ 26 октября 2010

Я использовал Punjab давным-давно, но из моих знаний о том, как работают менеджеры соединений Bosh, я не думаю, что вашему серверу потребуются какие-либо особые настройки, позволяющие Punjab получить к нему доступ.Например, я использую специальный менеджер соединений, написанный на PHP (использующий библиотеку Jaxl ), который независимо от типа / вида / версии целевого jabber-сервера может успешно с ними общаться.

ВВ вашем случае вы можете просто начать проксирование ваших запросов strophe (используя прокси-модуль apache) до http://localhost:5280/http-bind, где 5280 обрабатывается Punjab conn.менеджер.С этого момента он должен иметь возможность прокладывать себе путь к целевому серверу без каких-либо специальных настроек, требуемых на сервере.

Я советую сначала попытаться подключиться к своей учетной записи gmail или facebook с помощью Пенджаба, чтобы убедиться, что у вас естьон настроен правильно.

...