A few days ago, our server had a maintenance restart to upgrade
the ejabberd software running there. Moreover, we have installed ejabberd module for xmpp
ping support. This seemingly negligible change has some important
consenquences, which we would like to elaborate a little about.
XMPP Ping
What's this XMPP Ping all about?
XMPP Ping is an XMPP
extension (XEP) for, as the name suggests, sending pings over XMPP. Although
messages sent over XMPP/Jabber are supposed to be delivered reliably to your
beloved, family, friend, coworker or whoever you want to IM with, the real
experience wasn't that bright for some people. If you or your buddies connect on
a broken or unreliable Internet connection, you might know what we are talking
about. If your Internet connection fails unexpectedly, there are cases when
Jabbim server doesn't know about it and hence neither do your contacts. This
used to lead to up to 30 minute periods of „black holes“, when messages
sent to such contacts would end up in nowhere.
For a long time we were struggling with this bad user experience, waiting for
a possible solution. Now it's here: it's called XMPP Ping.
Disadvantages
Unfortunately, as almost everything in life, it's not perfect. It has its
drawbacks and we'd like to list the ones we have found yet:
- Shorter timeout: Before the XMPP ping it was possible for your TCP
connection to survive for several minutes, with the devices keeping the messages
on both sides safe. It will likely be possible only for shorter periods of
time now.
- More bandwidth: Many mobile users are concerned about increase in bandwidth
usage. Our early estimation suggests it's not that big issue, it's only about
180 bytes a minute. And that's without compression and when you're not sending
any other data. If you still thinks that's too much, please tell us!
- Problems with old and/or broken clients. There are some versions of some
clients which don't behave according to „XMPP Core“: http://xmpp.org/…rfc3920.html
specification by not replying to the IQ queries. After five years since the
publication of the XMPP specification, we deem it fair to consider all
non-compliant clients to be broken or buggy. Users of these clients experience
frequent reconnects and should consider upgrading their clients to newer
versions. If your client is affected and you can't upgrade for some reason,
please contact us in support MUC room jabber@conf.netlab.cz (web
interface).
- Clients we know or think to be affected: CenterIM (there's a
patch), Psi 0.10 and older, some versions of Pidgin. Chatopus (for Palm
OS), IM+ (for iPhone), MUCkl, Kopete (at least 0.12.7 doesn't work, at least
0.70.90 works), Sameplace, SIM, AQQ, Konnekt, Spik, Trillian. We try to contact
authors of affected software if necessary. Please tell us if you think this list
is wrong or incomplete, the experience for users of the same client seem to
differ.
- If you find any bug you think could be related to the upgrade, please don't
hesitate to contact us in MUC room jabber@conf.netlab.cz (web
interface).
- There is still some delay during which the messages can be lost in the worst
case scenario.
Advantages
- You will now find out in a matter of a few minutes that your buddy has some
connectivity problems and is offline
- When your connection breaks, you don't have to worry about hanging online
for thirty minutes and losing messages anymore
Roster versioning
Thanks to upgrade to brand new exciting ejabberd 2.1, we now support
roster versioning. This
extension is particularly useful for mobile users, because it can save a
considerable amount of data, especially for people with lots of friends.
Nevertheless, we also expect it to speed up the login time, so desktop users on
broadband links should be happy and smiling too. Awesome, huh? Our secret agents
tell us that support for that is in SVN version of
Gajim and there are rumours about people working
on support for
Psi, the best-looking client
under the Sun,
Glu, and for
Jabbim. If you know about other clients
with support of Roster versioning, have any feedback, ideas, experiences or just
want to chat a little bit, please check us out in already mentioned MUC room
jabber@conf.netlab.cz (
web interface). Do
it NOW!
Other stuff
There are several other changes, you can see all of them in
ejabberd
2.1 changelog. For example transition to MySQL for pubsub and
privacy rules.