Подключение BOSH сервиса

2013-03-09
При работе с xmpp сервером с клиента используется BOSH протокол. Рассмотрим подключение к xmpp серверу, через javascript библиотеку strophe. Работа BOSH протокола обеспечивается модулем http_bind, доступ к которому по умолчанию выполняется через порт 5280(настройки указаны в файле /etc/ejabberd/ejabberd.cfg). В параметрах конструктора Strophe.Connection указывается URL BOSH сервиса, т.е. URL вида http://localhost:5280/http-bind. Для удобства обращения к BOSH сервису с клиента порт скрывают, т.е. выполняют проксирование запроса. Для начала включаем proxy модуль apache.

$ sudo a2enmod proxy
$ sudo a2enmod proxy_http

Допустим, мы хотим обращаться к ejabberd серверу по URL http://site_domain/chat-gateway. Тогда в файле /etc/apache2/mods-enabled/proxy.conf прописываем


ProxyRequests Off

Order allow,deny
Allow from all

ProxyPass /chat-gateway http://localhost:5280/http-bind
ProxyPassReverse /chat-gateway http://localhost:5280/http-bind

И перезапускаем apache

$ sudo service apache2 restart