Quiero construir un servidor de mensajería. ¿Hay algo mejor que XMPP?

Hay algunas formas de lograr lo que necesita.

XMPP es un protocolo muy robusto y admitirá la mayoría de los casos de uso de mensajería instantánea. Al ser un protocolo maduro y robusto, tiene algunas ventajas y algunas desventajas. Está atascado con el protocolo y, según el caso de uso, puede ser una exageración importante, un chat individual con pocas funciones, por ejemplo. Pero también para un conjunto de características más elaborado: chat grupal, presencia, etc. encaja bastante bien, ya que la mayor parte de la tarea ya está hecha. Personalmente, tengo algo de experiencia con eJabberd, muy escalable y estable, pero escribirlo en erlang puede ser un desafío, si no está familiarizado con él, mientras que eJabberd tiene módulos para las pocas características que mencionó, terminé escribiendo mis propias versiones para que se adapte un poco mejor a nuestro caso de uso. Las versiones más recientes de eJabberd son bastante limpias y no tan “pesadas”, de hecho reescribieron todo hace un par de años.

Dicho esto, si todo lo que necesita es un mensaje directo, le gustaría tener mucha flexibilidad y no le importa tener que crear ciertas funciones desde cero, puede usar algo como redis pub / sub o, lo que parece ser la tendencia ahora, MQTT, y crear su conjunto de características (sincronización de mensajes, leídos / no leídos, etc.) en el idioma que elija.