Наверное, нет в мире такого интернетчика, который бы не знал о службах мгновенной отправки сообщений (IM — Instant Messaging), таких как ICQ, Odigo, AIM и т.д. Все они являются коммерческими проектами, а их протоколы передачи закрыты. Но на рынке таких систем появилась еще одна, открытая, которая в последнее время набирает все большую популярность и к тому же очень динамично развивается. Имя ей —Jabber.
Теория
Итак, что же это такое и почему это я должен бросить свою любимую Аську неизвестно ради чего? Во-первых, Jabber — это полностью открытый стандарт, к тому же свободный от лицензирования, со всеми вытекающими отсюда последствиями. В качестве носителя данных в Jabber используется XML, а следовательно, всегда есть возможность расширить функциональность протокола для выполнения необходимых задач (или, говоря простым языком, потенциальные возможности ограничиваются лишь фантазией разработчиков). Еще один плюс —децентрализованость. Это означает, что нет единого jabber-сервера, как у других систем IM. Даже вы можете запустить свой собственный сервер Jabber. Как известно, весьма крупный кусок доходов компания Mirabills (создатель ICQ) получала от продаж ICQ-серверов для организации взаимодействия пользователей во внутренних корпоративных сетях. Здесь же мы фактически получаем то же (а то и больше), но за бесплатно. В то же время, в отличие от ICQ, в этой разработке большое внимание уделено безопасности. Любой сервер Jabber может быть изолирован от общей сети серверов Jabber. Кроме того, многие реализации этих серверов поддерживают работу через защищенное SSL-соединение, а некоторые клиенты — даже шифровку сообщений с помощью PGP/GPG. Еще одним плюсом является то, что многие Jabber-сервера предоставляют услуги шлюза для других IM-систем, например ICQ, AIM, MSN, Yahoo! и т.д. Хотя вследствие закрытости протоколов последних эта поддержка, к сожалению, пока не является полноценной, но в то же время во многих случаях и предоставляемых возможностей хватит с головой. Более детально об этой технологии можно прочитать на http://jabber.ru(инфы очень мало, но на русском) и http://jabber.org(побольше, но на английском :-)). Еще хочу добавить, что чисто субъективно Jabber побыстрее Аськи будет, и как мне кажется, порождает гораздо меньший трафик. А вообще, он объединил в себе все лучшее из IRC- и IM-систем, не забыв, в отличие от них, и про безопасность.
Дальнейшее знакомство с Jabber мы проведем на примере сеанса работы с этой системой, в котором мы будем использовать Windows-клиент JAJC и сервер jabber.kiev.ua, созданный и размещенный на базе информационно-вычислительного центра Киевского национального университета. Последнюю на момент написания статьи версию JAJC вы можете скачать с или . Размер — 2.2 Мб.
Практика
Установив JAJC, запускаем его. Так как мы еще не имеем учетной записи, он предлагает нам ее создать. Ну что ж, вводим регистрационную информацию. Обратите внимание, что если Аська в качестве уникального идентификатора использует номер, то Jabber — имя, подобное почтовому адресу, то есть username@server. Таким образом, указав в поле Username «graywolf» (чувствительности к регистру у логина нет), а Server — «jabber.kiev.ua», я получил Jabber ID (или просто JID): graywolf@jabber.kiev.ua. Именно его вы должны использовать, чтобы связаться со мной. Не путайте Username с ником — его вы потом тоже сможете указать. И еще не забудьте поставить галочку напротив Create new account. Со всем остальным, думаю, разберетесь и сами — там все стандартно.
Зарегистрировали? Отлично. Сервер может прислать вам поздравление, а JAJC — предложить заполнить vCard (ваши анкетные данные). Заполнили? ОК. Теперь в списке контактов (он же ростер) вы видите группу Agents. Это служебная группа, которая представляет собой список сервисов Jabber, подписчиком которых вы являетесь. Дважды щелкнув на jabber.kiev.ua, мы попадаем в окно просмотра доступных сервисов. Вообще говоря, есть два протокола получения этой информации: Browse и Discovery. Первый — более древний, но его поддерживает большинство клиентов, второй — новый, с расширенной функциональностью, но с клиентами могут возникнуть проблемы. Тип протокола зависит от сервера, к которому вы подключаетесь. Некоторые поддерживают оба протокола, другие — только один из них. Итак, доступные сервисы:
conference.jabber.kiev.ua — многопользовательские конференции. Они бывают трех типов. GroupChat-1.0 — это простенький многопользовательский чат без особых возможностей. Multi User Conference (MUC) — самая крутая разновидность конференции. По сути, это в чем-то упрощенная, а в чем-то улучшенная IRC, а это о чем-нибудь да говорит. Причем, сохранена обратная совместимость с GroupChat, чтобы клиенты, не поддерживающие MUC, все равно могли с ним работать. Третий —Conference-v2 — я в работе ни разу не видел. Конференции бывают динамические и статические. Первые, по аналогии с IRC, создаются при попытке входа на нее и автоматически уничтожаются через пять минут после ухода, а вторые чаще всего описаны в конфигурационных файлах (как правило, это служебные конференции), или же это бывшие динамические, у которых установлен флажок Persistent. Бывают конференции также приватными (например, просто защищенные паролем или же с ограниченным списком пользователей) и общедоступными. Чтобы создать конференцию, достаточно щелкнуть правой кнопкой, выбрать Join a conference и указать ее имя в поле Room. Чтобы войти в существующую, дважды щелкаем на conference.jabber.kiev.ua и получаем список доступных конференций. Теперь кликаем правой на той, что вас заинтересовала, и выбираем Join a conference;
http://vjud.jabber.kiev.ua — что-то вроде ICQ White Pages. Для поиска щелкаем по ней правой кнопкой и выбираем Search. Вводим данные и... Короче, все стандартно;
http://icq.jabber.kiev.ua — шлюз для ICQ. Если у вас есть ICQ UIN, то смело щелкайте правой кнопкой мыши и выбирайте Registration. В поле Username вводите ваш UIN, затем пароль. Вот и все. Получите список ваших аськиных знакомых — можете общаться. Есть, правда, одно маленькое неудобство — список контактов будет представлен элементами типа @icq.jabber.kiev.ua, Если хотите получить нормальные ники, придется поработать вручную. Под пунктом Registration в Popup-окне есть еще пункт Search, с помощью которого можно совершать поиск в ICQ White Pages;
http://aim.jabber.kiev.ua, http://msn.jabber.kiev.uaи т.д. Принципы работы с ними те же, что и с icq.jabber.kiev.ua, но работают они, соответственно, для сервисов AIM и MSN;
В процессе написания этих строк автор узнал приятную новость: jabber.kiev.ua перешел на новый сервер, и появилось несколько новых возможностей: поддержка Discovery (и, соответственно, отказ от Browse), IRC-транспорт, Multi User Conference. Наиболее интересная новинка —http://irc.jabber.kiev.ua, IRC-транспорт. Чтобы войти, дважды кликаем по irc.jabber.kiev.ua, слева в списке действий выбираем Configure > Data и настраиваем кодировочки. Потом кликаем Join > Create groupchat, вводим имя канала и сервера в виде channel%server[%port]. То есть, что-то типа linux%irc.lucky.net. Все — вы на канале. Не mIRC и не XChat, конечно, но жить (в смысле, чатиться :-)) можно. Круто, одним словом. Кстати, если вы будете использовать клиент, который не поддерживает просмотр сервисов (Gaim, например) или просто еще не умеет нормально работать с IRC-транспортом через этот самый просмотр, вы можете сделать это через обычный Join Conference, вручную заменив сервис conference.jabber.kiev.ua на irc.jabber.kiev.ua. Остальное аналогично.
Но http://jabber.kiev.ua — не единственный сервер Jabber (не забываем про децентрализованность). В поле ввода ресурса можно указать и другой сервер. Например, русский http://jabber.ru. И проверить, какие возможности он предоставляет. Обратите внимание на http://confrernce.jabber.ru — в отличие от нашего сервера, там всегда есть люди :-). Так, конференция talks@conference.jabber.ru позволяет просто поговорить о чем-нибудь, devel@conference.jabber.ru — задать вопросы, связанные с самим Jabber (настройка серверов и работа с клиентами), и так далее.
Jabber-клиенты
TKabber
Платформы: Windows, Linux
Ну, этот клиент — как-никак, любимец среди линуксятников и пользователей других UNIX-подобных ОС, хотя он пользуется популярностью и у «виндузятников». TKabber, пожалуй, — самый навороченный из всех существующих клиентов (ну, разве что исключая JAJC) — вряд ли найдется какая-либо возможность, которая в нем еще не реализована. Он поддерживает и Browser, и Discovery, многопользовательский чат в режимах MUC, GroupChat и Conference-v2, отправку сообщений и простой чат, соединение по SSL, передачу файлов. Если поискать, то в Инете найдется еще и куча плагинов для него, как полезных, так и просто прикольных. Например, для MUC — общедоступная доска для рисования :-) и так называемое social, позволяющее вам, набрав в окне ввода текста коротенькую команду, получить целое творение при посылке :-). Например, набранная мной команда /dance отобразится в чате как «graywolf пляшет дикий танец!» :-). А как вам онлайновая игра в шахматы с собеседником? Правда, у меня этот плагин дико глючил, но все равно круто. Среди полезного — плагинчик, позволяющий текст, случайно набранный в английской раскладке клавы, перевести на русскую. И еще много чего.
Правда, несчастным пользователям Windows кроме самого клиента придется скачать пакет Active State TCL. Вдобавок, некоторые вещи носят UNIX-ориентированный характер, и не факт, что под Виндами оно будет работать.
Также хотелось бы обратить внимание, что внутри TKabber использует Unicode, а поэтому если вы хотите, чтобы ваши собеседники могли прочитать отправленные вами сообщения, необходимо использовать в локали кодировку UTF-8. А у вас KOI8? Не отчаивайтесь! Запустите TKabber командой вида:
$ LC_ALL=uk_UA.UTF-8 tkabber
и все пойдет как по маслу... Только шрифты Unicode’овские подберите и пропишите в default.tcl и default.xrdb.
PSI
Платформы: Windows, Linux, FreeBSD, Mac OS X
Это третий по популярности после TKabber и JAJC клиент. Базируется на библиотеке Qt и больше ориентирован не на мощь, а на удобство пользования и красоту оформления, поэтому некоторые новейшие Jabber-технологии работать в нем не будут. Это связано с тем, что разработчики PSI вносят в него только официально утвержденные стандарты, чтобы обеспечить полную совместимость с другими клиентами. В то же время они обещают держать нос по ветру и при возможности реализовывать желания пользователей. Последняя на момент написания статьи версия 0.9.0 не поддерживает Discovery (хотя в 0.9.1 поддержка обещается). Кроме того, нет возможности передачи файлов (обещается в 0.9.2). Еще среди недостатков я бы отметил очень слабые даже по сравнению с другими чистыми Jabber-клиентами возможности поиска в ICQ White Pages. А так вполне симпатичный и простой в использовании клиент, у меня он стоит на пару с TKabber. Ах да, он еще и наиболее мощный из клиентов для MacOS.
JAJC (Just Another Jabber Client)
URL: и
Платформы: Windows
Все достоинства этого клиента, я думаю, понятны из примера. Это наиболее функциональный мессенджер для Windows. Среди недостатков я бы отметил несколько непрозрачный для пользователя-новичка интерфейс. Обилие возможностей просто пугает. Впрочем, мощь требует жертв. А немного разобравшись с принципами работы Jabber, понимаешь, что так и должно быть. Кстати, взгляните на . Возможно, вы найдете там несколько интересных для вас плагинов.
Далее о клиентах, которые позволяют работать как с Jabber, так и с другими системами. Причем, с последними не только через jabber-транспорты, а и напрямую.
SIM
Платформы: Windows, Linux, FreeBSD
Моя бывшая рабочая лошадка для работы с ICQ лишь недавно обзавелась поддержкой Jabber, поэтому оценить ее реализацию пока могу лишь троечкой с натяжкой. Последнюю версию SIM, к сожалению, видел в работе только под Windows. Она поддерживает только самые элементарные возможности Jabber (даже про многопользовательский чат, в смысле конференции, придется забыть ), но тем, кто хочет посмотреть на него одним глазком, сгодится. Зато есть возможность передачи файлов, отправки сообщений в формате RTF, соединения через SSL. А еще есть проверка орфографии и работа с GnuPG. И, пожалуй, все. Просмотра доступных сервисов нет и в помине . Рекомендую тем, кто привык использовать возможности Аськи (тот же поиск, например) — «чистые» Jabber-клиенты вам этих возможностей пока не дадут.
Miranda
Платформы: Windows
Один из наиболее популярных ныне универсальных мессенджеров для Windows. Детальнее о нем можно почитать на . Относительно же поддержки Jabber... Есть просмотр сервисов с помощью старенького Browse (Discovery, к сожалению, нет), многопользовательский чат (Groupchat), работа по SSL. В общем, вполне неплохо для программ такого типа. Правда, есть у нее одно маленькое неудобство: конференцию нельзя добавить в ростер. Мелочь, конечно, но все же... Эта возможность, правда, отсутствует во многих клиентах, но для программки с такой функциональностью это уже недоработка.
