У меня вчера был тот же вопрос, и я смог его решить.
Это правильно - вам не нужно никаких настроек пенджаба. По умолчанию пенджаб будет работать через порт 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>