Linux
RabbitMQ
RabbitMQ - Введение
RabbitMQ - Урок 1. Hello world!
RabbitMQ - Урок 2. Распределенные очереди
RabbitMQ - Урок 3. Рассылка публикаций
RabbitMQ - Урок 4. Селективная рассылка
RabbitMQ - Урок 5. Рассылка по шаблону
RabbitMQ - Урок 6. Реализация RPC шаблона
XMPP
Git
Полезные ссылки
Установка и конфигурирование jabber сервера
2012-11-28
Согласно википедии
, XMPP (Extensible Messaging and Presence Protocol — расширяемый протокол обмена сообщениями и информацией о присутствии) — основанный на XML, протокол для мгновенного обмена сообщениями и информацией о присутствии или отсутствии собеседников (как правило, поддерживаются такие признаки присутствия, как "доступен", "отошел от компьютера", "недоступен" и т. д.). XMPP является децентрализованной, расширяемой и открытой системой. Обмен сообщениями осуществляется в режиме, близком к режиму реального времени. Протокол, помимо передачи текстовых сообщений, поддерживает передачу голоса, видео и файлов по сети. XMPP является свободным для использования, т.е. любой желающий может открыть свой сервер мгновенного обмена сообщениями, регистрировать на нём пользователей и взаимодействовать с другими серверами XMPP. В качестве XMPP сервера испльзуется ejabberd - jabber демон написанный на Erlang(jabber - старое название протокола XMPP).
Установка jabber сервера
Чтобы установить ejabberd демон, необходимо выполнить команду
$ sudo aptitude install ejabberd
После этого текущее состояние xmpp сервера можно проверить командой
$ ejabberdctl status
Запуск, останов и перезапуск сервера выполняется соответсвенно командами
$ sudo ejabberd start
$ sudo ejabberd stop
$ sudo ejabberd restart
или
$ sudo /etc/init.d/ejabberd start
$ sudo /etc/init.d/ejabberd stop
$ sudo /etc/init.d/ejabberd restart
Конфигурирование jabber сервера
Конфигурационный файл xmpp-сервера расположен по адресу /etc/ejabberd/ejabberd.cfg. Файл конфигурации записан в соответствии с erlang синтаксисом, где знак % означает комментарий. Для начала необходимо добавить виртуальный хост, на котором мы будем регистрировать пользователей. Это делается в блоке %%Hostname. По умолчанию там прописан localhost. Однако один ejabber сервер позволяет работать с любым количеством доменов, которые расположены на том же хосте. Одно ограничение - все домены должны быть записаны в одну строчку, в противном случае jabber сервер выдаст ошибку. Добавим наш домен foodomain.com
{hosts, ["localhost", "foodomain.com"]}
Теперь добавим юзера, который будет иметь возможность администрировать jabber сервер удаленно. Это делается добавлением записи в блоке %%Admin user. Поскольку права на многие действия определены по умолчанию для юзера admin, добавим этого юзера к нашему домену foodomain.com.
{acl, admin, {user, "admin", "foodomain.com"}}
По умолчанию jabber работа с jabber'ом осуществляется через порт 5222. Это можно изменить в разделе %%LISTENING PORTS.Там же можно добавить поддержку обмена сообщениями через SSL доступ, раскомментировав строки
{5223, ejabberd_c2s, [
{access, c2s},
{shaper, c2s_shaper},
{max_stanza_size, 65536},
zlib,
tls, {certfile, "/etc/ejabberd/ejabberd.pem"}
]},
Доступ к админ панели через порт 5280 устанавливается в строках
{5280, ejabberd_http, [
web_admin
]}
Если необходимо дать возможность пользователям самим регистрироваться на сервере, то в разделе %%ACCESS RULES следует установить
{access, register, [{allow, all}]}.
{registration_timeout, infinity}.
и в разделе %%MODULES
{mod_register, [
{access, register}
{access_from, register}
]},
где
первая запись - правило доступа register в значение "для всех пользователей"
вторая запись - частота возможных регистраций. По умолчанию разрешается 1 регистрация за 10 минут. Поскольку пользователь может зарегистрироваться, передумать, удалить себя из чата, а после снова передумать и добавить себя в чат, устанавливаем это значение infinity.
треться запись - прописываем модуль, разрешающий регистрацию пользователей на сервере, а также установку/смену пароля.