Приоритет

Версия от 22:09, 12 мая 2022; Rain (обсуждение | вклад) (Современный вариант)

Приоритет — целое число, определённое для КАЖДОГО ресурса, и передаваемое клиентом(ам) как часть информации о присутствии. Стандартом допускаются приоритеты от -128 до +127, обычно используются приоритеты от 0 до 127 (отрицательные имеют специальное значение и не все программы-клиенты их допускают).

Приоритет определяет, какому из одновременно подключенных клиентов будет доставлено сообщение, если оно послано на неполный JID (на JID без указания ресурса). Сообщение в первую очередь придет клиенту с наивысшим приоритетом. Если таковых окажется несколько, то, как сказано в описании протокола XMPP, «сервер решает», кому будет доставлено послание. У большинства серверов сообщение доставляется всем клиентам с одинаковым приоритетом.

Некоторые серверы действуют немного иначе: сервер Google (JID'ы *@gmail.com) доставляет сообщение всем одновременно подключенным клиентам, если их приоритеты ниже 32. (Другими словами: приоритеты от 0 до 31 сервер gmail.com считает одним приоритетом.)

Если приоритет отрицателен, то сообщение придёт соответствующему ресурсу только в том случае, если оно послано именно ему по полному JID (c указанием ресурса).

Warning.png В современном jabber'e указание ресурса и приоритета практически не используется. Популярная практика на сейчас - пересылать все сообщения на все клиенты вне зависимости от приоритета (а если сервер и клиент умеют работать с архивом сообщений, то и подгружать старые сообщения - и не важно, с какого устройства они были написаны). Ресурс же иногда можно указать для собственного удобства - например, для возможности удаленного выполнения команд на другом клиенте.

Ссылки