Delphi - сбориник статей

       

Статусы, состояния, информация о присутствии, управление подпиской <Presence>


Прием и отправка статусных сообщений, а также информации о видимости контактов и подписки на сообщения от них, осуществляется через XML-строфу <Presence>.

Атрибут type строфы <Presence> является дополнительным.

Строфа, которая не обладает атрибутом type, используется Jabber-ом, для сообщений о присутствии контакта в сети Jabber и указывает на то, что данный контакт находится в сети (онлайне) и доступен для коммуникации.

Если атрибут type присутствет в строфе <Presence>, то он управляет подпиской на сообщения и смену статусов другого контакта (объекта). Аналог подписки в IM-сетях является прохождение авторизации в ICQ.

Если атрибут включен, то он должен содержать иметь одно из следующих значений:,

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

subscribe — Запрос на подписку (авторизацию) от другого контакта.

subscribed — Информирует о том, что контакт разрешил авторизацию.

unsubscribe — Отправитель аннулирует подписку.

unsubscribed — Запрос на аннулирование подписки (отозвание авторизации) от другого контакта.

probe — Запрос о текущем присутствии контакта только сервером от имени пользователя.

error — Ошибка, произошедшая при доставки предыдущих данных. Обработка такого сообщения идет в соответствии с RFC 3920 XMPP-Core.

Например, запрос на подписку от контакта ivanov@jabber.ru для нашего контакта может выглядеть так:

<presence to="delphi-test@jabber.ru" type="subscribe" from="ivanov@jabber.ru"/> </presence>

Разрешение авторизации в ответ :

<presence to="ivanov@jabber.ru" type="subscribed"/>

А запрет (отказ) вот так:

<presence to="ivanov@jabber.ru" type="unsubscribed"/>

Содержание раздела