&gt;Asynchronous messaging depends on a server to hold your messages for delivery when you go offline.<p>You can get 90% of the benefit by having other clients in the chat act as relays for that chat.  No centralization required.  You&#x27;d only need a bouncer for specific situations, like mobile&lt;-&gt;mobile chat with all desktop clients shut off.<p>&gt;Would you be upset if I said &quot;IRC does that&quot; if you asked for messaging?<p>If I asked for just messaging, I would accept &quot;IRC&quot;.  But if I ask for video chat, and a tiny fraction of IRC clients did video chat, I would not accept &quot;IRC&quot; as an answer.  If you want to name a protocol, the implementations need to have widespread support for the entire list of features.  Theoretical support is not good enough. I agree that universal support is unnecessary, but widespread support is a must.<p>It looks like &quot;XMPP+Jingle&quot; is a pretty good answer, but I&#x27;d have to look into it more.