WhatsApp is a heavily modified xmpp, and does just that. That's what it works so well. Such approach is way easier in a federated environment.