Использование нескольких клиентов одновременно
В сети Jabber возможно использование одной учетной записи на нескольких Jabber-клиентах одновременно. То есть, например, можно общаться сидя за настольным компьютером, а потом пересесть на диван с ноутбуком и продолжить общаться там, не выключая Jabber-клиент на самом компьютере. Или же вообще уйти на улицу, перебрасываясь сообщениями через Bombus на мобильном телефоне. Скажете: "Невозможно"? Но в Jabber нет невозможного!
Каким образом это все работает.
В Jabber у каждого клиента есть так называемые имя ресурса и приоритет. Имя ресурса может быть любым, например, "Десктоп", "Ноут" или "Телефон" для примера выше, а приоритет - это число (от -128 до 127), которое определяет, куда будут идти сообщения, которые нам кто-либо пишет. То есть, назначаем клиенту на настольном компьютере приоритет 50, а ноутбуку и мобильному телефону - 60. Теперь, если мы подключимся к Jabber с ноутбука или мобильного телефона, все новые сообщения пойдут на них вместо стационарного компьютера.
Более того, некоторые Jabber-клиенты умеют автоматически выставлять приоритет в зависимости от статуса. К примеру, есть 2 компьютера, за которыми Вы по очереди работаете. Пока сидите за одним, у Jabber-клиента на нем приоритет, допустим, 100, а на соседнем - 50. Перешли за другой - первый сменил статус на "Отошел" и приоритет на 50, а второй теперь стал "главным" с приоритетом 100. Кроме того, при желании можно вручную выбрать ресурс собеседника, при этом все правила будут игнорированы.
Вариантов может быть сколько угодно, а количества приоритетов хватит на все случаи жизни.
Примеры
Представим, что к какому-то JID'у подключилось два ресурса - ClientX с приоритетом X и ClientY с приоритетом Y. Возможно следующие случаи:
- X больше Y: Сообщения по умолчанию будут идти на ClientX.
- Y больше X: Ровно наоборот.
- X равен Y: По умолчанию сообщения будут посылаться на оба клиента.
- X и Y меньше нуля: По умолчанию сообщения никуда не пойдут, они будут отправляться только при явном указании ресурса. Используйте этот вариант с большой осторожностью!
В современном jabber'e указание ресурса и приоритета практически не используется. Популярная практика на сейчас - пересылать все сообщения на все клиенты (ресурсы) вне зависимости от приоритета (а если сервер и клиент умеют работать с архивом сообщений, то и подгружать старые сообщения - и не важно, с какого устройства они были написаны). Ресурс же иногда можно указать для собственного удобства - например, для возможности удаленного выполнения команд на другом клиенте. Некоторые клиенты в качестве ресурса вставляют случайную строку. |