[jdev] When to pass the JID??

Aaron Kryptokos aaronkryptokos6 at aaronwl.com
Fri Jun 4 20:34:12 CDT 2010


Mason, Matt wrote:

> So can someone please tell me when the JID is
> passed from the client to the server?  The spec seems pretty verbose, 
> and oddly doesn’t appear to specifically state when the initial JID is 
> passed.

I'm sure you've figured out by now that the JID is passed from the 
server to the client, not from the client to the server.


This is one of the weirdest parts of XMPP in my opinion.  Most XMPP IM 
clients ask you for your JID, or ask you for some login info then 
speculate on what your JID might be; but the reality is that you don't 
know what your JID is until you connect and the server tells you after 
resource binding.

I think what it comes down to is pretty much all of the XMPP IM clients 
have this wrong.  They're asking all the wrong questions:

-node: Most clients ask for this, and it serves absolutely no purpose; 
you don't need it to log in, and the server is going to tell you what it 
is when you do, and if you put the wrong thing, no client I've tested 
will let you know that it was wrong when you connect.

-domain: You obviously need this, but it's wrong to assume that this 
domain will actually be part of your JID, like many clients do; GTalk is 
the best counterexample.

-username/accountinfo: This is obviously dependent on the authentication 
methods available, but it's essential the the client ask the user for 
this: many do not, or make incorrect assumptions that it is the same as 
the node, or hide the authentication info entry field somewhere 
hard-to-find.


I think the way this should work is the only two questions IM clients 
should ask about when setting up an existing account before talking to 
the server is
-Domain
-Authentication: user/pass, or whatever is appropriate for supported 
authentication methods.  In fact, it may be best to wait until 
contacting the server for the first time to even ask for this so that 
you can be sure which methods are supported.  Anything else is just 
preemptive.

It's fine if a client remembers and displays the JID associated with an 
account, but I think this should only happen after talking to the server 
to see what the JID actually is.



More information about the JDev mailing list