Extensible Messaging and Presence Protocol (qu’on peut traduire par « protocole extensible de présence et de messagerie »), souvent abrégé en XMPP, est un ensemble de protocoles standards ouverts de l’Internet Engineering Task Force (IETF) pour la messagerie instantanée, et plus généralement une architecture décentralisée d’échange de données. XMPP est également un système de collaboration en quasi-temps-réel et d’échange multimédia par son extension Jingle, dont la voix sur réseau IP (téléphonie sur Internet), la visioconférence et l’échange de fichiers sont des exemples d’applications.
Erlang est un langage de programmation, supportant plusieurs paradigmes : concurrent, temps réel, distribué. Son cœur séquentiel est un langage fonctionnel à évaluation stricte, affectation unique, au typage dynamiquefort. Sa couche concurrente est fondée sur le modèle d’acteur. Il possède des fonctionnalités de tolérance aux pannes et de mise à jour du code à chaud, permettant le développement d’applications à très haute disponibilité. Erlang est conçu pour s’exécuter sur une machine virtuelle spécifique appelée BEAM.
Ejabberd seems like a solid choice for the server side, look at the companies using it: ejabberd Use Cases.
On the client side you can make use of Smack: igniterealtime/Smack.
A modular and portable open source XMPP client library written in Java for Android and Java (SE) VMs : smack
https://hackernoon.com/better-ways-to-build-an-android-chat-app-using-firebase-xmpp-c089aefa2563
https://www.scaledrone.com/blog/posts/android-chat-tutorial
Références :
https://fr.wikipedia.org/wiki/Erlang_(langage)
https://fr.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol