On Tue, Jun 16, 2009 at 10:47 PM, Peter Saint-Andre<stpe...@stpeter.im> wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Someone just poked me offlist about reliable messaging in XMPP. I > replied as follows. Perhaps it makes sense to write this up a bit more > formally?
Definitely! > 2. What if your client went offline but your server hasn't figured that > out yet? Your server can use whitespace pings over the XML stream to > figure out if you're online or offline: > > http://tools.ietf.org/html/draft-ietf-xmpp-3920bis-00#section-5.7.3 This is not a ping mechanism, but a keepalive mechanism: a ping is a request-response back-and-forth communication. This is why we should change the bis spec from WHITESPACE PING to WHITESPACE KEEPALIVE. In this section we say that whitespace is a space character, which is inconsistent with section 1.3. Conventions, which says: The term "whitespace" is used to refer to any character that matches production [3] content of [XML], i.e., any instance of SP, HT, CR, and LF. http://tools.ietf.org/html/draft-ietf-xmpp-3920bis-00#section-1.3 Besides we mention that an entity can send whitespace keepalive, but we don't recommend how to handle them on the receiving entity. We could consider that the absence of reception of regular whitespace keepalive means you have lost the stream, but it's contrary on the above recommandations that say we should maintain the stream. In order to be strict, we could write a specific mechanism that says how to send and handle received keepalives, but it will be resource-consuming... Regards. -- Nicolas Vérité - ProcessOne http://process-one.net Mobile: +33 6 20 88 63 04