[JDEV] Chatting with the correct resource

Daniel Chote daniel at chote.net
Fri Nov 7 11:23:21 CST 2003

This was one of the items ive always had an opinion on, since the very 
first day I started jabber development.. Ive tried 4 different 
approaches to this method now... And just from my point of view what im 
doing now is fairly efficient...  In the original Rival, i didnt really 
cater for resources, everything message was sent to a resource stripped 
jid.  Rival v2 was pretty much the same, but you "could" specify a jid 
if you wanted. Rival3 allowed you to view resources in your contact list 
if you wanted... if you started a chat session with someone, it would go 
to a recource stripped jid, but if you recieved a message from someone 
with a resource as the start to a chat session, i would send back to the 
jid with resource, so... if they got on another client at the same time 
and sent you a new message, it would create a new chat window based on 
the new jid...  In the new Rival's that im working on, i take a little 
more complex approach.  Each roster item in the list as a default 
resource value, which is generated by collating all the presence 
recieved from a user, and then ordering it based on <show/>... so.. if 
someone had 2 resources active, one away and one online... the online 
resource gets set as the default, if the presence changes, it resorts 
based on the best one...   So, when a chat session is started, it goes 
to the resource thats got the highest status..  Im however not looking 
at presence priority at this point (as most of the time its irrelevant 
or not recieved :P).

So thats how I do it in Rival... I dont feel this is something that 
_needs_ to be standardised across clients, mainly because of the 
different user experiences offered by having the selection.   *Not 
everyone likes the MSN experience*


Bart van Bragt wrote:

> Mikael Hallendal wrote:
>>> So IMO in these cases it would be nice if there was some 'Client UI 
>>> design best practices'-guide :D
>> The fact that you are sending over Jabber shouldn't enforce anything on
>> your UI. I think however that it's very important to have rules on how
>> to behave with other clients (these are called specifications).
> True, from a technical point of view :D
> Indeed, users won't switch to another client all that often but for me 
> it's kind of hard to help a friend that's using Exodus while I'm on 
> Psi. I have no clue how Exodus handles this resource priority stuff. 
> IMO the user should be able to predict what will happen to their 
> message when they use a Jabber client, regardless of the specific 
> client that they use. This is _really_ important from a usability 
> point of view. The resource problem is only a minor aspect of that. 
> IMO the installation/JID problem is a bigger problem. It's just 
> impossible to help someone with getting Jabber working without either 
> looking for documentation about the specific client (which doesn't 
> exist for 9 out of 10 clients ;)) or installing the client yourself.
> IMO it isn't that hard to just create a small convention about the 
> JID/Password form? If a particular client developer really feels that 
> they way he/she invented the wheel then he/she can do what they want 
> but if there is some kind of basic UI guideline then there will be at 
> least _some_ conformity in basic area's like filling in the initial 
> connect form. This will make it a LOT easier to get people to use 
> Jabber. If users are already confused at the first screen then we're 
> going to lose a LOT of users before they've even tried Jabber.
> Again: I'm talking about a guideline. At the moment clients devs are 
> (luckily!) looking at each other to see how (some) others do it. All 
> that would be needed is a small document that actually documents how 
> most client devs do these things. All this to create some conformity 
> in the basic UI elements. If devs want to expand on the basic elements 
> then more power to them ;)

Daniel Chote
Developer/Designer and typical drunk!
email/jabber: daniel at chote.net
blog: http://daniel.chote.com
website: http://www.chote.com

More information about the JDev mailing list