Приоритет
Приоритет — целое число, определённое для КАЖДОГО ресурса, и передаваемое клиентом(ам) как часть информации о присутствии. Стандартом допускаются приоритеты от -128 до +127, обычно используются приоритеты от 0 до 127 (отрицательные имеют специальное значение и не все программы-клиенты их допускают).
Приоритет определяет, какому из одновременно подключенных клиентов будет доставлено сообщение, если оно послано на неполный JID (на JID без указания ресурса). Сообщение в первую очередь придет клиенту с наивысшим приоритетом. Если таковых окажется несколько, то, как сказано в описании протокола XMPP, «сервер решает», кому будет доставлено послание. У большинства серверов сообщение доставляется всем клиентам с одинаковым приоритетом.
Некоторые серверы действуют немного иначе: сервер Google (JID'ы *@gmail.com) доставляет сообщение всем одновременно подключенным клиентам, если их приоритеты ниже 32. (Другими словами: приоритеты от 0 до 31 сервер gmail.com считает одним приоритетом.)
Если приоритет отрицателен, то сообщение придёт соответствующему ресурсу только в том случае, если оно послано именно ему по полному JID (c указанием ресурса).
В современном jabber'e указание ресурса и приоритета практически не используется. Популярная практика на сейчас - пересылать все сообщения на все клиенты (ресурсы) вне зависимости от приоритета (а если сервер и клиент умеют работать с архивом сообщений, то и подгружать старые сообщения - и не важно, с какого устройства они были написаны). Ресурс же иногда можно указать для собственного удобства - например, для возможности удаленного выполнения команд на другом клиенте. Некоторые клиенты в качестве ресурса вставляют случайную строку. |