About Blog PGP Key

rfc3921, исходящие сообщения

Вот в rfc3921, p.4.1. сказано:

4.1.  Specifying an Intended Recipient

   An instant messaging client SHOULD specify an intended recipient for
   a message by providing the JID of an entity other than the sender in
   the 'to' attribute of the <message/> stanza.  If the message is being
   sent in reply to a message previously received from an address of the
   form <user@domain/resource> (e.g., within the context of a chat
   session), the value of the 'to' address SHOULD be of the form
   <user@domain/resource> rather than of the form <user@domain> unless
   the sender has knowledge (via presence) that the intended recipient's
   resource is no longer available.  If the message is being sent
   outside the context of any existing chat session or received message,
   the value of the 'to' address SHOULD be of the form <user@domain>
   rather than of the form <user@domain/resource>.

То есть получается, что первые сообщения всегда отсылаются на bare JID (без ресурса). После первого же ответа нужно начинать отвечать уже на full JID, и так до тех пор, пока ресурс не станет недоступным.

Отсюда два вопроса:

  1. Что делать, если у собеседника появляется ресурс с более высоким приоритетом? Продолжать отсылать сообщения на “старый” ресурс или переключаться на новый?
  2. Забывать” ли кратковременно недоступный ресурс (например после реконнекта собеседника)? А если как раз в момент реконнекта появляется ресурс с более высоким приоритетом?

В RFC оба случая не описаны (Про Conversation Thread знаю).

Add post to: Delicious Reddit Slashdot Digg Technorati Google
(already: 1) Comment post

Comments

3.04.2009 1:39 Chris Archer

На мой взгляд в #1 логично, что посылать надо на старый. Если что, ответят с нового. Щас проверил — именно так ведет себя Psi и это вполне удобно

В #2 я бы поступил так — проверял доступность / недоступность в момент отправки и исходил из этого

3.04.2009 1:55 dion

Первое вот не совсем логично (но лучше подходит под описание в RFC). Сидел себе чувак и переписывался с кем-то. Потом решил на пару минут выйти, но его там задержали. Достаёт он какой-нибудь нетбук и вылазит в онлайн с большим приоритетом. Соответственно про то, что ему пишут на старый ресурс он узнает только когда вернется.

Лично мне сейчас кажется, что тут на RFC надо забить. И при _любой_ смене доступных ресурсов “закрывать” сессию.

3.04.2009 2:03 Chris Archer

> вылазит в онлайн с большим приоритетом

при этом может написать “а я теперь тута” и создаст новую сессию. а если что пришло на комп, то в некоторых клиентах (Psi и вроде Gajim) можно получить эти мессаги на другой ресурс.

3.04.2009 8:14 Сыр Российский

Я так понимаю, что открывая окошко чата, даже ничего не написав, мы уже имеем existing chat session. В том же Пси можно выбрать ресурс, с которым хочешь начать разговор.

3.04.2009 8:16 Сыр Российский

Ага, а потом кто-то, проходя мимо моего стола, заденет мышку, и приоритет того клиента, откуда я ушёл, станет выше, чем у нетбука. Нафиг-нафиг.

3.04.2009 8:27 Сыр Российский

Извини, не так понял. Ты предлагаешь «отвязываться» от ресурса при изменении множества ресурсов контакта. По-моему, это будет работать, только если одним аккаунтом пользуется один человек, который, как сущность не квантовая, в разных точках пространства находиться не может.

А если я на работе, а дома моим жабером захочет воспользоваться кто-то из домашних? Допустим, нет у моей мамы аккаунта своего. Я скажу: «Вася, пиши моей маме на ресурс „дом“», и начнётся хаос…

Лучше при появлении более приоритетного ресурса на другой стороне прямо в чатике рисовать текст и кнопочку: «У %username% появился более приоритетный ресурс. Возможно, он перешёл к другому компьютера или подключился с помощью мобильного устройства. [Продолжить общение с новым ресурсом?]»

3.04.2009 8:43 dion

Можно выбрать. Но по умолчанию Psi шлет сообщения на bare JID. И так до первого ответа.

3.04.2009 8:44 dion

Может написать. Но не обязан. Плюс для того, чтобы получить сообщения с другого ресурса, про них нужно знать/догадываться и принудительно “попросить” их отфорвардить. Во всяком случае в Psi.

3.04.2009 8:56 dion

Да. Пока что, как мне кажется, если общение начиналось без указания ресурса (т.е. на bare JID), то ресурс лучше всего перевыбирать при каждом изменении списка этих самых ресурсов. А если точнее — каждый раз “забывать” про имеющийся ресурс и слать сообщения на bare JID. Если исходить из предположения, что один JID == один человек (отбросив все другие варианты вроде один JID на двоих или один жид на компутер/посадочное место), то такое будет _всегда_ работать правильно.

А если я на работе, а дома моим жабером захочет воспользоваться кто-то из домашних? Допустим, нет у моей мамы аккаунта своего. Я скажу: «Вася, пиши моей маме на ресурс „дом“», и начнётся хаос…

IMHO это неправильная изначально идея. Как минимум я уже по привычке блокирую сессию при отходе от компьютера. К тому же случаи одного JID-а на двоих (даже временно) мне не известны. Ну и как вариант — если чат начинается не просто с клика/enter-а по контакту, а с указанием ресурса (Psi: Open chat to -> ресурс), то можно с этого ресурса и не сьезжать. Например, до тех пор пока ресурс не уйдет в оффлайн.

Лучше при появлении более приоритетного ресурса на другой стороне прямо в чатике рисовать текст и кнопочку: «У %username% появился более приоритетный ресурс. Возможно, он перешёл к другому компьютера или подключился с помощью мобильного устройства. [Продолжить общение с новым ресурсом?]»

Comment form for «rfc3921, исходящие сообщения»

Required. 30 chars of fewer.

Required.

Comment post