Yes, I am using iq:register every time I log in because I find that sometimes servers “lose” registrations and it confuses users when their contacts dont show up with the correct presence.
I think your analysis is correct, because I believe I am sending an ‘‘available’’ stanza to the XMPP server and then sending iq:register to every transport every time I log in.
I was assuming that I could call iq:register as many times as possible, and if the login credentials matched with the ones already stored on the server then nothing would happen and only if the credentials were different there would be a clean up and a transport re-registration.
I want to make it as smooth as possible for the end user, so for those cases where the registration to a transport was “lost” or the login credentials have changed, the user doesnt need to perform a manual regisrtation with each transport. In the latter case where the login credentials have changed, I cannot think of a way for the client to “know” what login credentials the server has and if they are correct or not. Therefore I just send the login credentials each time on server login.
I also wanted to make it simple on the client side so the client didnt need to know if the user had previously registered with a servers transport or not
Message was edited by: sphillips