All these problems have been solved in XMPP years ago, and there are some clients fully supporting the mobile experience and usage of multiple clients.<p>On the Desktop, Swift and Gajim come to my mind, on Android Conversations is getting  really awesome (and yaxim, which I am the author of, supports the basic multi-client&#x2F;mobile use case you are interested in).<p>That said, the XMPP protocol is not perfect, and it is lacking some important elements for a 2010+ mobile chat developer, but considering that it was initially developed in 1999, that mobile chat is only one of its many use cases, and that there are extensions covering all you have asked for, the critique is not appropriate.<p>[0] <a href="http:&#x2F;&#x2F;swift.im&#x2F;swift.html" rel="nofollow">http:&#x2F;&#x2F;swift.im&#x2F;swift.html</a><p>[1] <a href="http:&#x2F;&#x2F;gajim.org&#x2F;" rel="nofollow">http:&#x2F;&#x2F;gajim.org&#x2F;</a><p>[2] <a href="http:&#x2F;&#x2F;conversations.im&#x2F;" rel="nofollow">http:&#x2F;&#x2F;conversations.im&#x2F;</a><p>[3] <a href="https:&#x2F;&#x2F;yaxim.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;yaxim.org&#x2F;</a>