I definitely like where you're headed with this. As someone else pointed
out, Jabber needs much more explanatory errors. Right now, the client knows
nothing about the reason for why it was disconnected from the server.
In general the error mechanism seems OK -- most places where the <error> element appears it has a numeric code as well as a message. The error number is only missing in the top-level <error> sent when you get disconnected.
I think it's been mentioned before that it would be nice if the server knew the client's preferred language so that it could try to send error messages in that language. The language code could be an attribute sent by the client when it logs in.
Also, it's smart to have a better reconnect timeout algorithm than most
clients use. The one I like the most is a geometrically increasing
reconnect timer.
That's a good idea. I'll try to remember to put it in my cheat sheet when I add a subsection on reconnecting.
�Jens
