[JDEV] Chatting with the correct resource

Peter Millard me at pgmillard.com
Wed Nov 5 14:05:24 CST 2003


Mikael Hallendal wrote:
> ons 2003-11-05 klockan 19.14 skrev Joe Hildebrand:
>> There have been clients in the past that always sent to the user at host jid
>> (which is what you are suggesting), and user-experience-wise, they aren't
>> great, since some of the messages in a conversation end up going to the
>> two different resources, as auto-away priority changes happen.
>
> Any pointers to these clients and a discussion on what wasn't great
> about them?

Winjab originally had support for multiple conversations with multiple
resources, which is not what you're suggesting, but it's not what the current
I-D says either. The "users" I heard from (in droves via private email) were
_real_ honest-to-god users using my client. They all (and I mean ALL) wanted the
behavior that the draft is suggesting. It doesn't ever make sense to have
multiple chat windows open to the same bare jid (user at host) since that is not
how we converse in real life. This approach is basically the opposite of what
you're proposing. The current I-D proposes a middle ground.

This stuff has come from experience of the jabber community (client writers
mostly). Not from a "marketing droid" survey of some kind.

> Any suggestions on how to handle this then? For example, I change
> computers and goes to my laptop, my desktop client is set to away (by
> autoaway or manually setting it to away), I log into my laptop. My
> friend who I where chatting with before writes me an important question,
> which goes to my desktop since he happened to chat with that resource. A
> few hours later I go back to my desktop and see that he has written the
> question.
>
> If the message followed the client where I actually is, this wouldn't
> have happened. Is there any solution to this with the current spec?

"Following the client" is a LOT harder than this one scenario. The model that I
use in Exodus is this:
- When a user dbl-clicks a contact in the roster, open a chat window and send
the first message to user at host. This allows the server (and possibly filtering
rules setup by the recipient) to determine which resource to send the message
to.
- When I receive a reply back, I "lock in" that resource (user at host/foo).
- If user at host/foo goes offline, then I unlock the window and start sending
messages to user at host again.
- If the user sends me a reply from a different resource, I lock in that new
resource.
[.. and here is the kicker ..]
- If I _close_ my window, and dbl-click the same contact, I reopen the same
window (showing old messages), but reset the jid back to user at host.

What typically happens in the situation you describe above is that when you go
away, I would _usually_ (but not always) close the window. Which resets the JID
back to user at host. This is how the majority my users seem to operate (based on
feature requests/bug reports/private email, etc..).

pgm.




More information about the JDev mailing list