Константин Бояндин - Жаба на посылках (введение в Jabber)

Константин Бояндин - Жаба на посылках (введение в Jabber)

Всё начиналось с ICQ

Сервис ICQ (омограф «I seek you» - «я ищу тебя») предоставлял, поначалу уникальные, возможности для мгновенного общения между людьми. Сервис стал de facto нарицательным именем сервиса мгновенного обмена сообщениями.

Из настоящего текста исключена подробная критика ICQ. Поговорим лучше о положительных сторонах одной из альтернатив ICQ.

Jabber и XMPP

Альтернативы ICQ начали появляться быстро. Практически все крупные почтовые службы начали реализовывать свои протоколы (AOL, MSN, Yahoo, Google), плюс начали появляться сторонние службы, в той или иной мере предоставляющие те же услуги мгновенного общения (Gadu-Gadu, Bonjoir, Zephyr, Mail.ru Mail Agent); в конце концов стали появляться и службы голосового общения (Gizmo, Skype), предоставляющие в т.ч. обмен текстовыми сообщениями.

Среди всего этого многообразия я бы советовал присмотреться к протоколу XMPP и построенной на нём технологии Jabber («джаббер», в русской IT-среде «жаба») обмена мгновенными сообщениями на основе этого протокола.

Задумайтесь вот о чём:

Что даёт вам переход на Jabber?

  1. Возможность подключаться ко множеству служб обмена сообщениями из одного приложения (при помощи транспортов), без установки нескольких программ-клиентов. Внимание: некоторые клиенты, такие как Pidgin, самостоятельно поддерживают множество протоколов (служб)
  2. (это поддерживают реализации Jabber в т.ч. от Google и Yandex, в других случаях нужно уточнять) История сообщений хранится в едином месте. на сервере - и доступна отовсюду. Нет необходимости хранить её на компьютере и рисковать, что кто-нибудь, случайно или нет, с ней ознакомится. Меньше риск потерять всю историю - по той же причине.
  3. Множество полезных инструментов - узнавайте о курсах валют, обменивайтесь файлами (музыкой и пр.), узнавайте о погоде, получайте свежие новости с любимых сайтов - всё при помощи Jabber
  4. Можно входить произвольным количеством учётных записей в одной и той же программе - не нужно запускать несколько экземпляров «аськи», рискуя отправить сообщение не в то окно. Внимание: это справедливо в случае описанного ниже Пси, а также в случае Pidgin и некоторых других клиентов. Некоторые клиенты позволяют это делать при помощи трюков (например, в Миранде - копированием DLL, поддерживающей тот или иной протокол, под другим именем), в других вообще может оказаться невозможным.
  5. Есть возможность организовывать конференции - возможность многим пользователям общаться в единой комнате (как это сделано, например, в IRC)
  6. Есть возможность входить с одной и той же учётной записью из нескольких мест одновременно без отключения предыдущих сессий. Внимание: прочтите пояснение на этот счёт: Ресурс JID
  7. Вам, вероятно, не потребуется специально регистрироваться на Jabber-сервере, чтобы пользоваться этим способом общения. Если у вас есть учётная запись в одной из следующих служб: почта Gmail.com, почта Yandex, почта Nextmail.ru, ЖЖ (LiveJournal.com), у вас уже есть учётная запись, которую вы можете использовать в Jabber без каких бы то ни было дополнительных действий (про настройки см. ниже). Внимание: на разных серверах существует разная функциональность Jabber - тщательно изучите возможности и условия использования конкретного сервера, прежде чем приступать к работе с ним.

Среди клиентов, поддерживающих и ICQ, и Jabber, упомяну QIP Infium, Pidgin и Miranda. В случае Миранды поддержка дополнительных протоколов осуществляется при помощи модулей (plug-ins).

Технические достоинства Jabber-а (кому интересно)

  1. XMPP — открытый протокол и останется открытым. Протокол допускает расширение, таким образом можно адаптировать клиенты и серверы под конкретные нужды с сохранением базовой функциональности.
  2. Нет единого сервера, кто угодно может включить собственный Jabber-сервер и создать свою собственную сеть мгновенного общения со сколь угодно мощной функциональностью. И серверные, и клиентские программы в большинстве своём бесплатные, из них большинство - с открытым исходным кодом.
  3. Безопасность на высоте — Jabber поддерживает как относительно старый подход с подключением по выделенному защищённому порту (SSL), так и защищённое соединение по стандартному порту, по требованию (STARTTLS).
  4. Нет обязательной рекламы, по понятным причинам. Борьба со спаммерам становится технически проще, зачастую есть или легко добавляются средства оперативной блокировки и эффективного администрирования учётных записей.
  5. Есть возможность создания вспомогательных надстроек, т.н. транспортов, для обеспечения связи с другими протоколами и службами. Это означает, например, что вы можете продолжать общаться с теми вашими знакомыми, которые всё ещё используют ICQ, MSN и ряд других служб — просто настроив связь с соответствующим транспортным сервисом. Помимо прочего, транспорт проще в обслуживании — нет необходимости открывать множество портов для разных служб обмена сообщениями, все клиенты используют стандартные порты Jabber для подключения.
  6. Кодировки стандартизованы. Jabber использует Unicode для представления информации — это упрощает процедуру преобразования текстовой информации в кодировку, используемую конкретным клиентом.

Об остальных возможностях Jabber'а вы сможете узнать самостоятельно по прилагаемым ссылкам.

Из недостатков XMPP можно упомянуть относительную избыточность, рыхлость передаваемой информации (XMPP основан на XML). Однако, во-первых, при сравнении со стандартным ICQ клиентом общий трафик при общении (за счёт рекламных показов и т.п.) сопоставим с трафиком XMPP, и, во-вторых, последние дополнения к XMPP позволяют использовать передачу данных в упакованном виде, что значительно экономит трафик.

Знакомство с Jabber

Если вас убедило сказанное выше, то добро пожаловать в мир Jabber. Минимальными действиями можно установить клиент, обеспечивающий безопасное подключение, и настроить транспортное соединение в те службы, в которых у вас остались контакты. Как минимум, вы выигрываете в безопасности и получаете возможность общения со множеством служб при помощи одного-единственного клиента. Вам не нужно держать множество штатных программ, которые громоздки, зачастую засоряют ваш трафик рекламой и отнимают другие ценные ресурсы.

Среди множества Jabber-клиентов лично я рекомендую Пси (Psi). Причины.

  1. Пси — бесплатное программное обеспечение с открытым кодом.
  2. Пси — развивающийся проект, регулярно поставляющий новые версии с улучшенной основной функциональностью и возможностью надстройки её при необходимости.
  3. Пси — кросс-платформенный клиент. Это актуально, если вы используете разные ОС, такие как Windows и Linux.
  4. Пси — минималистский клиент. Нет ненужных «украшилищ», погони за графическими изысками, анимацией и всем таким. Это та самая машина, которая ездит, а тюнинг и украшения — это уже ваша забота.

Устанавливаем и настраиваем Psi

Открываем сайт Пси и переходим по ссылке «downloads» и далее «Microsoft Windows» (если ставим под Windows), сохраняем файл (в данный момент около 12 мегабайт) и исполняем.

На сайте есть ссылки для Mac Os X и ссылка для скачивания исходного кода. Последнее может потребоваться, если вы устанавливаете Пси на таких операционных системах, как Linux в случае, когда нет ещё собранного Пси последней версии. В случае сборки из исходников из известных проблем могу упомянуть необходимость установки qca-ossl, чтобы иметь возможность использовать защищённые соединения.

При установке можно просто принимать все умолчания. Выберите русский язык установки.

p>

После установки откройте ссылку «Русский» в секции «Language packs» и следуйте инструкции по установке русского перевода.

В дальнейшем предполагается, что вы установили Пси версии не ниже 0.12.

p>

После установки запускаете Пси и добавляете учётные записи (аккаунты). Для этого нажмите на иконку с буквой «пси» слева внизу и выпавшем меню выберите «Аккаунты».

Есть два способа добавить аккаунт: зарегистрироваться на Jabber-сервере в реальном времени или же ввести параметры соединения вручную. В примере ниже рассмотрим подключение аккаунта на основе учётной записи в Google Mail (gmail.com).

Нажмите «Добавить» в окошке меню, которое открывается после выбора пункта меню «Аккаунты». Укажите имя (произвольная строка) нового аккаунта и нажмите на кнопку «Добавить». Если вы поставите галочку в «Зарегистрировать новый аккаунт», то вам будет на одном из последующих шагов предложено указать имя Jabber-сервера, на котором вы создаёте новый аккаунт (см. ниже, где брать список серверов, см. ниже).

В нашем примере не ставим галочку и нажимаем «Добавить».

p>

В открывшемся окне вводим параметры соединения. Прежде всего, на вкладке «Аккаунт» в поле «Jabber ID» вводим имя учётной записи. Оно пишется как адрес электронной почты, например «john.doe@jabber.org» - до символа '@' указывается имя пользователя (login name), а после — имя сервера. В нашем примере мы используем имя, совпадающее с нашим адресом электронной почты в Gmail.com.

Ниже вводим пароль. В нашем случае это — пароль для входа в электронную почту Gmail.com.

Можно установить галочку «Автоматически восстанавливать соединение» - в случае временных разрывов связи. Рекомендуется включить «Вести историю сообщений» (включено по умолчанию), чтобы сохранялась история разговоров (имеется в виду — сохранялась у вас на компьютере; сохраняется ли она на сервере — зависит от настроек сервера и вашей учётной записи на нём).

После того, как ввели Jabber ID (JID), пароль и пометили все необходимые опции, нажимаем на вкладку «Соединение».

Здесь необходимо указать параметры соединения.

Рекомендуется пометить «Сжимать трафик (если возможно)». Если клиент выяснит, что сервер поддерживает упаковку сообщений, это может значительно снизить трафик в обмен на незначительное увеличение нагрузки на процессор.

В случае Gmail.com используйте приведённые на снимке ниже параметры.

Пометить «Вручную указать адрес сервера и порт». Адрес сервера: talk.google.com, порт 5223.

Пометить «Пропускать предупреждения SSL». Во многих случаях защищённые Jabber-соединения используют т.н. «самоподписанные» сертификаты SSL. Само по себе это не означает, что серверу нельзя доверять — сертификаты могут быть дорогим удовольствием, и, если Jabber-служба предоставляется на бесплатной основе, её администраторы не всегда готовы выкладывать значительные средства на сертификат.

«Шифровать соединение»: выбрать «Традиционный SSL».

Аутентификация открытым текстом - «Если соединение шифруется» (по умолчанию).

Нажимаем «Сохранить».

В списке аккаунтов появился новый. Обратите внимание, что слева от каждого аккаунта стоит галочка. Если её снять, то аккаунт как бы «забывается», не упоминается в списке и его настройки и пр. становятся недоступны. Это удобно, если некоторыми аккаунтами вы пользуетесь только изредка.

Теперь пора проверять соединение. Нажмите правой кнопкой мыши на вновь созданный аккаунт в списке (в основном окне Пси), выберите «Статус» и выберите «В сети».

Если параметры введены верно, то аккаунт вскоре подключится и вам, возможно, предложат заполнить личную карточку (vCard). Что туда вводить и вводить ли вообще — решайте сами. Имейте в виду, что данные личной карточки могут быть доступны в поиске по серверу, а их использование регламентируется правилами конкретного сервера — выясните вначале, прежде чем указывать слишком много личных данных.

Если параметры введены с ошибкой и в сеть не удаётся войти — выберите в том же контекстном меню (правой кнопкой на имя аккаунта) пункт «Настройки аккаунта» и проверьте параметры соединения, имя и пароль.

Настройки для владельцев учётной записи популярных служб

Ниже перечислены параметры подключения, которые вы можете ввести, чтобы использовать уже существующие аккаунты (учётные записи) в некоторых существующих сетевых службах.

В любом случае рекомендуется помечать пункты «Сжимать трафик», «Отправлять keep-alive пакеты» (по умолчанию помечено) и «Пропускать предупреждения SSL» на вкладке «Соединение». Эти пункты далее не указываются.

Google Mail (gmail.com), почта Google
Вкладка «Аккаунт».
Jabber ID: ваш почтовый адрес в @gmail.com (пример: «john-doe@gmail.com», без кавычек).
Пароль: пароль к вашему почтовому ящику.
Вкладка «Соединение».
Пометить «Вручную указать адрес сервера и порт». Сервер: talk.google.com, порт 5223.
Шифровать соединение: «Традиционный SSL».
Аутентификация открытым текстом: «Если соединение шифруется» (выбрано по умолчанию).

Yandex.ru, почта Yandex
Вкладка «Аккаунт».
Jabber ID: ваш почтовый адрес в @ya.ru — именно в этом домене! Пример: «john-doe@ya.ru», без кавычек.
Пароль: пароль к вашему почтовому ящику в Yandex.
Вкладка «Соединение».
Пометить «Вручную указать адрес сервера и порт». Сервер: xmpp.yandex.ru, порт 5223.
Шифровать соединение: «Традиционный SSL».
Аутентификация открытым текстом: «Если соединение шифруется» (выбрано по умолчанию).

Живой Журнал, LiveJournal
Вкладка «Аккаунт».
Jabber ID: ваше имя в ЖЖ плюс @livejournal.com. Пример: «myjj@livejournal.com», без кавычек.
Пароль: пароль к вашему аккаунту в ЖЖ.
Вкладка «Соединение».
Пометить «Вручную указать адрес сервера и порт». Сервер: livejournal.com, порт 5222.
Шифровать соединение: «Если возможно» (выбрано по умолчанию).
Аутентификация открытым текстом: «Если соединение шифруется» (выбрано по умолчанию).
Предупреждение: связь с ЖЖ осуществляется по незащищённому соединению, будьте осторожны.

Почта Nextmail.ru
Вкладка «Аккаунт».
Jabber ID: ваше почтовый адрес в Nextmail.ru. Пример: «mymail@email.su», без кавычек.
Пароль: пароль к вашему почтовому ящику.
Вкладка «Соединение».
Пометить «Вручную указать адрес сервера и порт». Сервер: ваш почтовый домен (для указанного в качестве примера ящика email.su), порт 5223.
Шифровать соединение: «Если возможно» (выбрано по умолчанию).
Пометить «Выбрать стандартный порт SSL» (выбрано по умолчанию).
Аутентификация открытым текстом: «Всегда».

Списки других Jabber серверов

В качестве примеров свободно доступных Jabber серверов можно привести jabber.ru, jabbus.org. Создать на нём аккаунт можно и автоматически, при создании аккаунта в Пси, и вручную, посетив сайт jabber.ru.

Аккаунт Jabber на этом сервере также годится, чтобы входить на сайте (и наоборот). После входа вы сможете участвовать в работе тамошнего форума и в т.ч. получать помощь от других пользователей.

На указанном сайте вы также найдёте справочную информацию по использованию Jabber, списку доступных Jabber-серверов, транспортов, особенностей подключения клиентов и многому другому.

На сервере jabber.ru доступен транспорт в сеть Mail Agent (Mail.ru Mail Instant Messenger, MRIM). На сервере jabbus.org есть транспорты в ICQ и MRIM.

Подключаем транспорты

Переходим к более тонкому — подключению транспортов. Например, вы можете подключить транспорт к Mail Agent (MRIM) и входить в сеть MRIM, просто подключаясь к учётной записи Jabber. Вы можете подключиться — через транспорт — к ICQ, MSN, Yahoo и многим другим. О том, как искать транспорты — см. выше.

Следует иметь в виду, что транспорты могут иметь разную функциональность и перед подключением разумно поинтересоваться, какие именно транспорты наиболее удобны и функциональны.

Примеры: для подключения к сети Mail Agent рекомендуются транспорты jabber.ru, jabbus.org; для выхода в ICQ - jabber.org.ru, jtalk.ru и те, что предоставляются Jabber-серверами Nextmail.ru.

Приведём пример подключения транспорта MRIM jabber.ru. Входим в сеть на любом из аккаунтов, нажимаем на его имя правой кнопкой и в контекстном меню выбираем «Обзор сервисов».

В открывшемся окне или ждём, пока текущий сервер сообщит о доступных транспортах, или сразу вводим в поле адреса jabber.ru и нажимаем «Ввод».

В списке должен появиться в т.ч. MRIM транспорт. Заметим, что можно указывать сам адрес транспорта в поле «Адрес», но предпочтительнее указывать адрес сервера, чтобы увидеть список всех доступных транспортов.

Правой кнопкой мыши вызываем контекстное меню в нужном нам транспорте и выбираем «Зарегистрироваться».

Далее дожидаемся окна авторизации и вводим имя (в случае MRIM - полный почтовый адрес в Mail.ru, в случае ICQ - цифровой идентификатор ICQ, UIN без дефисов и пробелов) и пароль.

После этого появится статусное сообщение от транспорта — просьба авторизовать его. Обязательно авторизуйте, иначе связи не будет. После этого транспорт начнёт искать список ваших контактов (в случае ICQ транспорт может потребовать для каждого контакта подтверждение авторизации), это делается один раз при регистрации транспорта. Всё, вы подключились к внешней службе через транспорт. Что удобно: если вы подключитесь к тому же аккаунту Jabber в другом месте, транспорт уже будет работать, и вам не придётся снова искать его и снова что-то подтверждать.

Тонкий момент: для добавления новых пользователей в контакт лист через транспорт нужно добавлять их в форме
пользователь@транспорт

Если в имени пользователя есть символ '@',его придётся заменить на другой, а данном случае на знак процента '%'.

Например, чтобы добавить в контакт-лист MRIM абонента с адресом pupkin@mail.ru, добавьте в список («ростер») следующего пользователя:
pupkin%mail.ru@mrim.jabber.ru

Всё. Сходный механизм — при добавлении пользователей в другие транспорты.

Транспорты могут время от времени отключаться — просто наведитесь на транспорт в списке пользователей (ростере) и переподключите его вручную. Вместе с транспортом вернутся и все ваши контакты в соответствующей службе — те, которые в сети, конечно.

Транспорт — это ещё один пользователь в вашем ростере. Чтобы отключиться от транспорта, просто удалите его из списка пользователей (это удобно если вы допустили ошибку в регистрации и хотите повторить).

Ссылки и материалы

Справочные данные и полезные ссылки

  1. Википедия: ICQ
  2. Википедия: XMPP
  3. JaWiki - Хранилище знаний по XMPP/Jabber

комментарии поддерживаются сервисом Disqus

Комментарии

Комментарии поддерживаются системой Disqus
Rambler's Top100