Настройка Punjab для отправки запросов XMPP на Openfire

StackOverflow https://stackoverflow.com/questions/4013588

  •  26-09-2019
  •  | 
  •  

Вопрос

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

Как настроить Punjab для подключения к серверу XMPP?

Пока что я был непосредственно установлен Bosh-подключение к серверу, используя XMPP Stophe Lib и Proxy Module в Apache. Теперь я хочу использовать Пенджаб.

Это было полезно?

Решение

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

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

<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'/>

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

Забудьте The Connection Manager Setup в Openfire. Вы можете сохранить эту функцию полностью отключенной. То есть потому, что Punjab использует нормальное соединение XMPP для Openfire - так же, как обычный клиент делает - он разговаривает на порту 5222 по умолчанию.

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

  • Скажите Пенджаб, какой URL слушать
  • Proxy Bosh просит это URL на порт по умолчанию Punjab по умолчанию 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 должен это знать.

Proxy Bosh просит это URL на порт по умолчанию Punjab по умолчанию 5280

Затем ваш веб-сервер должен обрабатывать запросы, направленные на «/ BOSH» и Proxy их в Punjab на порт 5280. Предположим, вы используете Apache, то в вашей виртуальной конфигурации хоста что-то вроде этого сделает работу:

<IfModule proxy_http_module>
    ProxyRequests Off 
    ProxyPass /bosh http://localhost:5280/bosh
    ProxyPassReverse /bosh http://localhost:5280/bosh
</IfModule>

Другие советы

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

Чтобы добавить к нему, главная причина путаницы в моем случае заключалась в том, что я использую различные виртуальные хосты для различных проектов, а несколько проектов используют один и тот же сервер XMPP. Более того, хотя сервер устанавливается на localhost, его не названо localhost. Поэтому, если кто-то сталкивается с аналогичными проблемами, вам нужно добавить маршрут = 'XMPP: Server: Port' (например, Marain = 'XMPP: 127.0.0.1: 5222' в моем случае) ко всему запросу в противном случае Punjab не сможет направлять Stanzas автоматически на сервер

@Джо:

Я думаю, что вы должны написать плагин STROPHE.JS, который добавит правильный атрибут маршрута (MARANCE = 'XMPP: dev.mydomain.com: 5222') к вашим запросам XMPP ... Я постараюсь помочь вам, когда я Вернитесь с работы.

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

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

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

В вашем случае вы можете просто начать проксирование ваших запросов на строфу (используя прокси-модуль Apache), чтобы http: // localhost: 5280 / http-bind Где 5280 обрабатывается Punjab Conn. управляющий делами. Из их на него должен быть в состоянии работать на ваш выход на сервер назначения без какой-либо специальной конфигурации, необходимой на сервере.

Я предлагаю вам сначала попробовать подключиться к вашей учетной записи Gmail или Facebook с помощью Punjab, чтобы убедиться, что вы настроили правильно.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top