¿Cuál es la forma canónica de hacer mensajes en tiempo real entre iPhones?

Si tuviera que haber una forma “canónica” de implementar la mensajería en tiempo real, sería XMPP, que es el único protocolo de mensajería estándar. Dicho esto, XMPP se desarrolló a finales de los 90, por lo que está diseñado más para clientes de chat de escritorio que para chat móvil.

Aun así, es utilizado por algunos clientes de chat móviles muy grandes, incluidos Skype, WhatsApp y Facebook Messenger.

Si se aleja de XMPP, tendrá que definir su propio protocolo de mensajería o utilizar un protocolo propietario. Al hacerlo, podría beneficiarse de una solución que es menos compleja y más amigable para dispositivos móviles. Pero obviamente no sería una solución estándar.

En los últimos años, mi equipo y yo hemos estado promoviendo un marco de mensajería de código abierto impulsado por la base de datos en tiempo real Firebase de Google.

Nos motivan los siguientes principios:

  • El marco de mensajería debe ser de código abierto y comercialmente amigable
  • Debería ser fácil y rápido agregar a un proyecto existente
  • El marco debe ser flexible y extensible.
  • Debe tener el control total de la fuente y los datos del usuario.

El marco utiliza un protocolo propietario, pero como es de código abierto, el protocolo puede ser inspeccionado y modificado.

Si está interesado en utilizar el proyecto o contribuir, puede consultarlo en Github. Actualmente es compatible con iOS y Android.

Hay muchas opciones para protocolos de chat en tiempo real, como TCP, XMPP o varios sistemas HTTP de sondeo largo.

Estos sistemas están construidos en capas de transporte UDP o TCP y cada uno proporciona sus propios pros y contras

mira esta pregunta SO. específicamente respuesta 3
UDP vs TCP, ¿cuánto más rápido es?

En otros comentarios. Escribí un sistema de chat móvil en tiempo real basado en TCP usando Nodejs (framework actionHero)

Tiene una funcionalidad básica y creo que podría ser un buen punto de partida para una aplicación de chat en tiempo real

Aquí está el cliente: NodeChatiOSClient
y el servidor: NodeChatServer

También viene con un servidor de demostración en AWS. Si tienes alguna pregunta, siempre puedes contactarme desde adentro = P

No soy un superpro de comunicación en tiempo real de iOs, pero para un proyecto propio de iOs también uso Websockets https://github.com/esad/zimt