[jdev] message events + chat state notifications

Peter Saint-Andre stpeter at jabber.org
Fri Nov 3 11:36:55 CST 2006

IMHO it's about time to actively deprecate the old message events
protocol (XEP-0022) in favor of chat state notifications (XEP-0085).
However, that means many clients will support both for a while. In
certain scenarios that can result in use of message events instead of
chat state notifications. Consider the following example (where both
clients support both protocols):

1. Romeo sends an initial chat message to Juliet with 85 + 22 extensions.

2. Juliet doesn't reply immediately.

3. Romeo sends a second chat message to Juliet with 22 extenions only
(since 22 is message-based but rule 2 in Section 5.1 of XEP-0085 says
not to include 85 extensions after the first message).

4. Now Juliet sends a reply. Her client looks at the last message
received from Romeo and includes the 22 extension (but not the 85
extension) in her first message to Romeo.

As a result, the clients end up using 22 instead of 85, even though
Romeo's client probably preferred to use 85.

IMHO the solution is for Juliet's client to prefer the use of 85 and
toggle a bit that says "Romeo sent me 85 extensions, use those in this
chat session". So the chat-session-level bit (85 support) takes
precedence over the message-level bit (22 support).

Thanks to Mikael Berthe of the mcabber project for pointing this out to me!

BTW, Mikael and discovered that several existing clients act like
Juliet's client in the above example, but I'm not naming names here. :)

(And there are still clients that support only message events, but I'm
poking the relevant developers directly...)


Peter Saint-Andre
Jabber Software Foundation

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 7358 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://mail.jabber.org/pipermail/jdev/attachments/20061103/234dbdfc/attachment-0002.bin>

More information about the JDev mailing list