Jabber и XEP
Хочу рассказать о протоколе XMPP и типе расширений для него под названием XEP.
Немножко теоретической базы из Вики:
XMPP — Extensible Messaging and Presence Protocol (англ. расширяемый протокол обмена сообщениями и информацией о присутствии), ранее известный как Jabber джа́ббер(англ. болтовня, трёп; тарабарщина) — это основанный на XML открытый, свободный для использования протокол для мгновенного обмена сообщениями и информацией о присутствии (см. список контактов) в режиме, близкому к режиму реального времени. Изначально спроектированный легко расширяемым, протокол, помимо передачи текстовых сообщений, поддерживает передачу голоса, видео и файлов по сети.
Применяется среди достаточных крупных проектов, такие как Google Talk, LiveJournal, Gizmo5, Google Wave и Quake Live(чат).
Также у протокола XMPP есть XEP (XMPP Extension Protocol), это расширения (extensions), которые содержат много чего интересного и об я расскажу далее под катом.
Например
Stream Management — которое позволяет исправить минус jabber’a, который исправляет ошибку с потреблением лишнего трафика при доставке сообщений о присутствии (то есть «статус-сообщений») нескольким пользователям. Его суть такова, что благодаря нему компрессия передаваемых данных протокола сжимается алгоритмами lzw и zlib, и шифруется. Как результат, потребление трафика снижается.
Сейчас я сделаю небольшой обзор, какие расширения есть в QIP Infuim и какие интересные расширения в него не включены:
Data Forms — расширение для формы ввода и вывода данных. Необходима в различных плагинах для настройки дополнительных транспортов.
Last Activity — Указывает время последней активности пользователя за компьютером.
Service Discovery -Возможность просматривать информацию об узлах в Jabber и содержит информацию о транспорте.
Multi-User Chat -Поддержка групповых чатов (конференций), которая стала очень актуальна.
In-Band Bytestreams — Позволяет двум клиентам устанавливать между собой виртуальное потоковое соединение путём кодирования данных в Base64.
Это дает шанс людям за закрытым прокси-сервером общаться и путем кодирования передавать данные как обычные сообщения.
a href=«xmpp.org/extensions/xep-0050.html» class=«more-link»>Ad-Hoc Commands(Удаленное управление)
Одно из моих любимых расширений, так как Jabber поддерживает дополнительные статусы, к примеру, vasyapupkin@jabber.ru/home или work. И сидя на работе, вы можете оставить джаббер дома включенным, сменить статус, либо прочитать сообщения, которые пришли на другой клиент.
Мой любимый мобильный джаббер клиент — Bombus, эту функцию поддерживает и это очень удобно.
vcard-temp(Визитка контакта)-vCard — это аналог визитной карточки, в которую пользователь может вписать персональные сведения о себе или то, что посчитает нужным сообщить. Данные vCard используются при поиске контакта. Так же правильно оформленная vCard способствует более удобному общению в конференциях. Позволяет указывать аватар, имя, место жительства и т.д.
SOCKS5 Bytestreams -поддержка промежуточного прокси-сервера.
Out of Band Data — Позволяет двум клиентам устанавливать между собой прямое потоковое соединение. Мало актуальное расширение, требующее внешнего IP адреса, так как у многих провайдеров внешние IP стоят денег и как мне кажется не особо пользуются популярностью среди обычных пользователей.
Chat State Notifications -Отвечает за уведомление о наборе сообщения собеседником.
Software Version — Определение версии клиента собеседника и его операционной системы.
Entity Capabilities — Определение возможностей (поддерживаемых XEP) клиента собеседника.
Jingle — Голосовой чат, видео чат, передача файлов.
Самое лучшее расширение. Надеюсь в qutim 3.0 или в бетках пораньше его добавят, оно позволяет общаться через VoIP, дабы убежать от Google Talk и SIP-провайдеров. За этим будущее.
XMPP Ping — Позволяет определять состояние подключения к серверу путём его пингования. Клиент периодически отправляет небольшие пакеты данных на сервер и получает от него ответ. Если ответа от сервера нет в течение определенного времени, клиент может считать что соединение с сервером потеряно и начать процедуру подключения заново. Данный метод поддерживается не всеми серверами.
Entity Time -Позволяет определить локальное время клиента собеседника.
Теперь я расскажу о по-настоящему полезных расширениях.
Немного о протоколе OAuth
OAuth — это открытый протокол авторизации, который позволяет предоставить третьей стороне доступ к защищенным ресурсам пользователя, без необходимости передавать ей (третьей стороне) логин и пароль.
Необходимая вещь, как серьезная замена OpenID, для участия в мульти-чатах (конференциях) через интернет сайты и т.д.
User Tune — Позволяет узнавать о музыке играющей у пользователя. Также можно выкладывать название песни на Juick.
Революционное расширение, позволяющее переводить вручную. Правда, находиться все это еще в стадии набросков (черновика).
В GoogleWave уже есть боты, которые переводят моментально, но у них не слишком большой запас словарных слов, что сказывается на правильности перевода.
На днях хочу поковыряться в XML Console и посмотреть на ее
возможности взаимодействия с Джуйком.
User Location — Данное расширение тоже находится в разработке.
Оно позволяет пользователю выложить свои координаты, взаимодействуя с GPS. Я думаю если поковырять код, то можно привязать и к Google Latitude.
Я считаю за XMPP будущее.



