Подключение к XMPP серверу

В этой заметке описано как подключить ardj к серверу XMPP (Jabber) для удалённого им управления. В конце заметки есть сжатая версия для быстрого запуска.


Управлять эфиром можно с помощью командной строки. В простых случаях этого достаточно. Это можно делать даже удалённо, подключаясь к серверу удалённо по SSH. Однако это не всегда удобно делать, например, с мобильного телефона. Сделать доступ к такой консоли публичным и безопасным ещё сложнее. Для этих целей больше подходит протокол обмена мгновенными сообщениями XMPP.

Удалённое управление работает просто: ardj устанавливает соединение с сервером и ждёт команд от пользователей. Большинству пользователей доступны простые команды: поиск композиций, постановка в очередь, голосование. Ограниченному кругу пользователей доступны расширенные команды: смена плейлиста, управление медиатекой, пропуск композиций и другие. Для удобства пользователей робот может присоединиться к конференции и отправлять в неё сообщения о смене плейлиста и другие важные сообщения.

Проверка соединения

Для подключения к серверу следует знать адрес сервера, имя пользователя и пароль. Имея эти данные, можно проверить возможность соединения командой ardj jabber probe, например:

$ ardj jabber probe [email protected] secret

Эта команда производит попытку подключения к серверу в отладочном режиме, с выводом большого количества отладочной информации. Сообщения об ошибках будут выделены красным шрифтом с пометкой «error». Пример ошибки, возникающей при указании неверного пароля:

DEBUG: sasl         error Failed SASL authentification: <not-authorized />

При отсутствии ошибок процесс будет работать до ручного прерывания (Ctrl+C); с помощью любимого клиента можно отправлять роботу сообщения и наблюдать их в консоли. На работу эфира проверочное соединение никак не влияет.

Сжатая версия

$ ardj probe [email protected] secret  # в случае успеха прервать по ^C
$ ardj config  # проверить и отредактировать параметры с префиксом jabber
$ ardj jabber run-bot  # запуск бота

Ссылки