¿Cómo funciona la mensajería en WhatsApp? ¿Es este el enfoque correcto para la comunicación entre el cliente y el servidor? ¿El cliente siempre está conectado a Internet cuando espera una respuesta?

Rick Reed aquí habla sobre algunas de las cosas que su equipo hizo para escalar su aplicación: Rick Reed, ingeniero de software de WhatsApp.
El resto de la respuesta es mi suposición sobre lo que una versión ingenua de WhatsApp podría hacer para implementar sus características. WhatsApp o la mayoría de las otras aplicaciones de mensajería rara vez funcionan de igual a igual. Por lo tanto, no abriría una conexión (desde su dispositivo) a cada uno de los dispositivos de sus amigos. En cambio, su dispositivo se conecta a su servidor. Luego podría usar un protocolo TCP personalizado o quizás HTTP para comunicar sus mensajes al servidor. El servidor a cambio los enviaría a los dispositivos de tus amigos. Si su amigo tenía su aplicación abierta o al menos el proceso de la aplicación en ejecución podría haber una conexión en vivo con el servidor. WhatsApp usará esa conexión para enviarles sus mensajes. Si su aplicación está “fuera de línea”, podrían optar por enviarles una notificación automática.
WhatsApp ha elegido Erlang, un lenguaje creado para escribir aplicaciones escalables que están diseñadas para soportar errores. Erlang usa una abstracción llamada modelo de actor por su concurrencia: http://en.wikipedia.org/wiki/Act…. En lugar del enfoque de memoria compartida más tradicional, los actores se comunican enviándose mensajes entre sí. Los actores, a diferencia de los hilos, están diseñados para ser livianos. Los actores pueden estar en la misma máquina o en máquinas diferentes y el mensaje que pasa abstracciones funciona para ambos. Una implementación simple de WhatsApp podría ser:
Cada usuario / dispositivo está representado como un actor. Este actor es responsable de manejar la bandeja de entrada del usuario, cómo se serializa en el disco, los mensajes que envía el usuario y los mensajes que recibe el usuario. Supongamos que Alice y Bob son amigos en WhatsApp. Entonces hay un actor de Alice y un actor de Bob.

Tracemos una serie de mensajes que fluyen de un lado a otro:

  1. Alice decide enviarle un mensaje a Bob. El teléfono de Alice establece una conexión con el servidor de WhatsApp y se establece que esta conexión es definitivamente del teléfono de Alice. Alice ahora envía a través de TCP el siguiente mensaje: “Para Bob: un monstruo gigante está atacando el puente Golden Gate “. Uno de los servidores front-end de WhatsApp deserializa este mensaje y lo entrega al actor llamado Alice.
  2. Alice, el actor, decide serializar esto y almacenarlo en un archivo llamado “Mensajes enviados de Alice”, almacenado en un sistema de archivos replicado para evitar la pérdida de datos debido a un alboroto de monstruos impredecible. Alice, el actor, decide enviar este mensaje a Bob, el actor, pasándole un mensaje ” Msg1 de Alice: un monstruo gigante está atacando el puente Golden Gate “. Alice, el actor, puede volver a intentarlo con un retroceso exponencial hasta que Bob, el actor, reconozca haber recibido el mensaje.
  3. Bob el actor finalmente recibe el mensaje de (2) y decide almacenar este mensaje en un archivo llamado “Bandeja de entrada de Bob”. Una vez que haya almacenado este mensaje de forma duradera, Bob el actor acusará recibo del mensaje enviándole a Alice el actor un mensaje propio diciendo “Recibí Msg1 “. Alice, el actor, ahora puede detener sus intentos de reintento. Bob, el actor, comprueba si el teléfono de Bob tiene una conexión activa con el servidor. Lo hace y Bob el actor transmite este mensaje al dispositivo a través de TCP.
  4. Bob ve este mensaje y responde con “Para Alice: creemos robots gigantes para luchar contra ellos “. Esto ahora lo recibe Bob el actor como se describe en el Paso 1. Bob el actor luego repite los Pasos 2 y 3 para asegurarse de que Alice finalmente reciba la idea que salvará a la humanidad.

WhatsApp en realidad usa el protocolo XMPP en lugar del protocolo ampliamente superior que describí anteriormente, pero entiendes el punto.

Para su propia aplicación, cosas a tener en cuenta:

  1. Es posible que no tenga control sobre los clientes que envían coordenadas GPS al servidor cada 10 minutos. Si su cliente se está ejecutando en un dispositivo móvil, el sistema operativo podría decidir privarlo de los recursos o simplemente matar su proceso.
  2. Debe mantener el estado de los clientes que están conectados a su servidor para asegurarse de que puede enviar mensajes a clientes activos cuando se cumplan sus requisitos. Esta es una ligera modificación del ejemplo de la “aplicación Comet” que casi todos los framework tienen.
  3. Establecer una conexión TCP no es un gran desperdicio de recursos ni del lado del cliente ni del lado del servidor. Si el ecosistema de software de su servidor admite E / S sin bloqueo, el estado requerido por conexión es pequeño. Podrías soportar más de 100k conexiones en una caja mediocre si te esfuerzas mucho. Si estás en JVM Netty podría ayudarte aquí. Python tiene Twisted y Tornado. C ++ / C puede hacer uso de epoll, kqueue o select si está en un sistema * NIX. Golang admite una gran cantidad de conexiones a través de su biblioteca estándar. Aquí hemos abordado la escalabilidad vertical, es decir, cuántos usuarios podría admitir en una caja simple.
  4. Si realmente desea escalar y construir un sistema distribuido que mantenga el estado, puede considerar Erlang (con OTP) u otras implementaciones del modelo Actor, como Akka (JVM) que también admite mensajes remotos. Una combinación de fuente de eventos y una arquitectura de transmisión de mensajes podría proporcionarle toda la escalabilidad horizontal que necesita.

WhatsApp utiliza XMPP (Protocolo de mensajería y presencia extensible) para manejar el sistema de entrega de mensajes.
XMPP es principalmente como HTTP, donde el cliente abre el socket con el servidor XMPP y lo mantiene abierto mientras el cliente está conectado. No es como la API REST normal donde el cliente abre el socket envía / recibe los datos y cierra el socket . El socket se abre siempre que haya iniciado sesión. En el caso de WhatsApp, eso es eternidad (no realmente, WhatsApp se vuelve a conectar automáticamente si la conexión finaliza)

El protocolo XMPP se ha utilizado en varias aplicaciones de chat como Google Talk, Facebook Messenger, etc. He estado trabajando en XMPP desde el año pasado y fue entonces cuando llegué a saber qué podía aportar este protocolo. Sin embargo, no se limita a las aplicaciones de chat. Estamos desarrollando una aplicación propia que no es una aplicación de chat.

En lo que respecta a la tecnología real, WhatsApp utiliza una versión muy personalizada de la biblioteca Smack en Android para construir su cliente y utiliza un servidor eJabberd personalizado para manejar el tráfico XMPP. Sin embargo, podrían tener una solución de back-end diferente para manejar los datos, que podría estar en una de la red de almacenamiento / computación en la nube (creo que es heroku, aunque no es una idea real).
En iOS y otras plataformas, supongo que podrían haber desarrollado sus propias bibliotecas. Desarrollar bibliotecas propias no es mucho trabajo, especialmente cuando tienes necesidades personalizadas y tienes un equipo de desarrolladores. He usado una de las bibliotecas disponibles para Windows Phone y las personalicé en gran medida para que funcionen para nosotros. Hice algunas mejoras en la biblioteca, pero debido a la escasez de tiempo no pude enviarlas al repositorio original (la documentación es realmente difícil).

De todos modos, si está interesado en aprender la tecnología, puede leer “XMPP: la guía definitiva” de Oriely y visitar la Fundación de Estándares XMPP.

¡Paz!

Es bastante simple en realidad, WhatsApp no ​​es P2P como algunos podrían pensar.
Debido a que WhatsApp se ejecuta a través de la red de datos y no en el canal de SMS, requiere un servidor centralizado para conectarse a otros usuarios de WhatsApp.
(Así es como también tiene la capacidad de enviar mensajes a usuarios sin conexión)

Para simplificar la operación, esto es lo que sucede cuando envía un mensaje:

  1. El mensaje / imagen / video / etc … se envía a los servidores de WhatsApp que contienen el contenido y los identificadores únicos.
  2. El servidor verifica si el destinatario del mensaje está disponible
  3. 2 casos:
  • sí: el mensaje se reenvía
  • no: el mensaje se almacena hasta que el destinatario se conecta al servidor

4. El destinatario confirma que recibió el mensaje alertando al servidor (V)
5. El destinatario confirma que leyó el mensaje alertando al servidor (VV)

Puede pensar en la operación como un uso básico del protocolo TCP-IP.
se envían datos —–> se aceptan datos —–> se responde la confirmación

* Lo que escribí arriba no es un hecho sino un resultado total de mi propio pensamiento.
No se basa en ninguna información de WhatsApp, sino solo en la mía.
Pero aún así, estoy bastante seguro de que así es como funciona.

Debo hacer que parezca que crear WhatsApp fue una tarea fácil, pero para crear un gran producto como lo hicieron, tuvieron que enfatizar la eficiencia del código y la confiabilidad del mismo, dos temas complejos. Pero no fue una revolución.

*** Arriba proporcioné una explicación simple de cómo se envía un mensaje, que no es exclusivo de WhatsApp. Para obtener una respuesta más amplia sobre las características adicionales específicas de WhatsApp, encontré otra pregunta respondida en Quora: ¿Cómo funciona WhatsApp?

Espero haber respondido tu pregunta!

WhatsApp utiliza una versión personalizada del protocolo de presencia y mensajería extensible estándar abierto (XMPP).

Luego de la instalación, crea una cuenta de usuario usando el número de teléfono de uno como nombre de usuario (Jabber ID: [phone number]@s.whatsapp.net ).

El software de WhatsApp compara automáticamente todos los números de teléfono de la libreta de direcciones del dispositivo con su base de datos central de usuarios de WhatsApp para agregar contactos automáticamente a la lista de contactos de WhatsApp del usuario.

Los mensajes multimedia se envían cargando la imagen, el audio o el video para enviarlos a un servidor HTTP y luego enviando un enlace al contenido junto con su miniatura codificada Base64 (si corresponde).

WhatsApp sigue un mecanismo de ‘almacenar y reenviar’ para intercambiar mensajes entre dos usuarios. Cuando un usuario envía un mensaje, primero viaja al servidor de WhatsApp donde está almacenado. Luego, el servidor solicita repetidamente al receptor acusar recibo del mensaje. Tan pronto como se reconoce el mensaje, el servidor lo descarta; ya no está disponible en la base de datos del servidor. El servidor de WhatsApp guarda el mensaje solo durante 30 días en su base de datos cuando no se entrega (cuando el receptor no está activo en WhatsApp durante 30 días)

Para más información consulte la wikipedia

WhatsApp es una alternativa a la aplicación de SMS incorporada de cualquier teléfono inteligente. En lugar de utilizar su red celular para enviar mensajes SMS a sus contactos, utiliza Internet para conectarse con cualquier persona cuyo número de teléfono esté registrado en la libreta de direcciones de su teléfono. Puede usar WhatsApp para enviar mensajes de texto, mensajes multimedia, mensajes de voz y chats grupales. Debido a que la aplicación usa Internet, no incurrirá en cargos internacionales al enviar mensajes a otros países.

Su agenda

Después de instalar la aplicación WhatsApp Messenger, la aplicación escanea su teléfono en busca de todos los números de teléfono de sus contactos y los compara con su base de datos masiva. Cualquier persona que use WhatsApp se agrega automáticamente a su lista de contactos de WhatsApp. No puede agregar o eliminar contactos manualmente; WhatsApp se empareja con la lista de contactos de su teléfono e identifica a todos sus usuarios por números de teléfono.

Solo online

WhatsApp no ​​utiliza redes celulares tradicionales para enviar mensajes SMS entre usted y sus contactos. Mientras que su teléfono enviará SMS en las mismas ondas de radio que usted hace llamadas de voz, WhatsApp utiliza conexiones de Internet 3G, 4G, LTE o Wi-Fi para enviar mensajes. Para que la aplicación funcione, debe tener una conexión a Internet válida en su teléfono.

Multimedia

En un teléfono celular, necesita una conexión 3G o 4G activa para enviar fotos, audio o video a través del servicio de mensajería del teléfono. Con WhatsApp, siempre puede enviar mensajes multimedia porque la aplicación siempre está conectada a Internet. WhatsApp también se integra con la galería de fotos y la cámara de su teléfono, permitiéndole seleccionar fotos para enviar a sus contactos o capturar una foto.

Integración

WhatsApp Messenger se integra con su teléfono en más formas que agarrando sus contactos y sus fotos. La aplicación siempre está activa, como su servicio de mensajería incorporado, ejecutándose constantemente en segundo plano. No necesita iniciar o cerrar sesión en el programa para tener acceso a WhatsApp. La aplicación captura la información de fecha y hora de su teléfono, en lugar del operador, como mensajes de texto, para organizar los mensajes. Si sus mensajes aparecen con la marca de tiempo incorrecta, ajuste la configuración de su teléfono.

Fuente: ¿Cómo funciona WhatsApp?

Para agregar más detalles a la explicación de Ben Avnon, esto es lo que sucede en el lado del servidor:

Hay dos formas de almacenar mensajes: en servidores o localmente. En el caso de WhatsApp, los mensajes se ‘ponen en cola’ temporalmente en los servidores hasta que un destinatario se conecta. Cuando se entrega un mensaje, la cola se elimina. Del mismo modo, los acuses de recibo de los mensajes que se envían, entregan o leen se pondrán en cola en los servidores en forma de un ID de mensaje particular. Por lo tanto, el “estado de la cola” (mantener pocos mensajes en las colas) es una métrica importante. Siempre que los picos de tráfico (como en el momento de los partidos de fútbol, ​​terremotos, etc.), se agregan servidores adicionales para hacer frente a la carga. WhatsApp utiliza escala horizontal para hacer frente al aumento de tráfico (lo que significa agregar más máquinas, no más memoria).

Es posible que hayas notado en las aplicaciones de mensajería instantánea cómo a veces los mensajes “saltan la línea”. Ese es el efecto secundario de esta arquitectura. Su mensaje salta en cualquier contenedor libre que haya. Y debido a una carga diferente, pueden pasar en el orden incorrecto.

Descubre más en esta publicación .

WhatsApp utiliza una versión personalizada del Protocolo de Presencia y Mensajería Extensible estándar abierto (XMPP) durante la instalación. WhatsApp compara automáticamente todos los números de teléfono de la libreta de direcciones del dispositivo con su base de datos central de usuarios para comparar automáticamente todos los números de teléfono de la libreta de direcciones de los dispositivos con su base de datos central de usuarios para agregar contactos automáticamente a la lista de contactos de los usuarios.

El Protocolo de presencia y mensajería extensible (XMPP) es un perfil de aplicación del Lenguaje de marcado extensible (XML) para transmitir datos XML casi en tiempo real entre dos o más entidades conscientes de la red. El formato de dirección para las entidades XMPP se desarrolló originalmente en la Comunidad Jabber Open Source en 1999. Funciona entre servidores y facilita la operación casi en tiempo real. El Protocolo puede eventualmente permitir a los usuarios de Internet enviar mensajes instantáneos a cualquier otra persona en Internet, independientemente de las diferencias en los sistemas operativos y los navegadores.

XMPP a veces se llama el protocolo Jabber, pero este es un nombre técnico incorrecto. Jabber es una aplicación de mensajería instantánea basada en XMPP, pero hay muchas aplicaciones además de Jabber que son compatibles con XMPP.

Se espera que XMPP admita aplicaciones de mensajería instantánea con autenticación, control de acceso, una gran medida de privacidad, cifrado de salto a salto, cifrado de extremo a extremo y compatibilidad con otros protocolos.

No sé cómo funciona exactamente WhatsApp, pero la mensajería descrita por usted parece un ejemplo de JMS. El productor (remitente) puede crear un mensaje que se guarda en una cola. Cuando el consumidor (receptor) esté disponible, recibirá un mensaje mediante la búsqueda de mensajes o mediante oyentes. En JMS, el remitente y el receptor no tienen que estar disponibles simultáneamente.

Android SDK tiene mensajería en la nube de Google (GCM) a través de la cual puede enviar mensajes, compruebe si se puede usar con un teléfono iPhone / BB / Windows o su aplicación estaría restringida solo a Android.

Para JMS, puede consultar el ejemplo de activemq en línea, que es una implementación de código abierto de la API de JMS. Aquí hay uno de esos tutoriales

http://www.javablogging.com/simp

Si desea conocer el modelo de negocio de Whatsapp / cómo obtiene dinero, puede consultar los siguientes enlaces:

  • ¿Cómo gana dinero WhatsApp para sobrevivir? ¿Cuál es su modelo de negocio?
  • ¿Cuál es el modelo de negocio de WhatsApp?
  • ¿WhatsApp gana dinero?
  • ¿Cómo genera ingresos Whatsapp? ¿Cuál es su modelo de negocio?
  • ¿Por qué vale WhatsApp $ 19B? ¿Cómo las aplicaciones incluso hacen dinero?
  • Cómo hacen dinero las aplicaciones de mensajería
  • Ingeniería Fukrey
  • ¿Cómo ganan dinero empresas como WhatsApp y Hike?
  • ¿Cómo ganan dinero las aplicaciones gratuitas (WeChat, Line, WhatsApp)?
  • ¿Por qué WhatsApp vale $ 19 mil millones?
  • ¿Cómo hace Whatsapp su dinero? ¿Y cuánto ha ganado y cuánto vale?

En cuanto a su pila de tecnología, redes y cómo se escala:

  • Cómo WhatsApp creció a casi 500 millones de usuarios, 11,000 núcleos y 70 millones de mensajes por segundo – Alta escalabilidad –
  • Página en erlang-factory.com


Ver entrevistas y presentaciones de Rick Reed.

Estos enlaces cubren la arquitectura de WhatsApp:

  • La arquitectura de WhatsApp que Facebook compró por $ 19 mil millones – Alta escalabilidad –
  • Arquitectura de WhatsApp
  • Entrevista con Rick Reed
  • Uso de Erlang en WhatsApp
  • Whatsapp, Facebook, Erlang y mensajería en tiempo real: todo comenzó con ejabberd

Gracias.

WhatsApp es una aplicación de mensajería en tiempo real, que utiliza el servidor Ejabberd (XMPP). Este servidor facilita la transferencia de mensajes instantáneos entre dos o muchos usuarios en cualquier segundo.

Eabberd es un servidor Jabber de código abierto escrito en lenguaje Erlang. La gestión de Batabase Mnesia DB entra en juego. Para almacenar archivos multimedia, la aplicación utiliza un servidor web exclusivo PIAN.

FreeBSD es el sistema operativo en el que se basa WhatsApp.

Puede obtener todos los detalles sobre la arquitectura de WhatsApp, vaya aquí: Funcionalidad de Whatsapp

A partir de una búsqueda rápida en Internet, parece que Whatsapp utiliza un servidor XMPP personalizado construido en Erlang para manejar el backend de mensajería. La ventaja de usar XMPP es que viene con soporte integrado para listas y presencia, por lo que no tiene que configurar manualmente la infraestructura y el código para administrar las suscripciones.

Al igual que la comunicación uno a uno, XMPP también le brinda soporte para el chat multiusuario, que más o menos simplemente transmite los mensajes a todos los usuarios en una sala de chat determinada. Aquí hay un tutorial sobre cómo hacer eso con Ruby, pero debería darle una buena idea del principio subyacente de MultiUser Chat usando XMPP y Orbited (Usando Ruby-on-Rails). En mi opinión, los servidores que consumen mensajes basados ​​en REST con un servidor de sondeo largo o Websockets deberían ayudarlo a recuperar los datos del back-end. Recomendaría buscar en StropheJS una biblioteca XMPP para JavaScript u Orbited orbited2. Orbited permite un socket como interfaz con javascript y funciona sobre Twisted. Aunque no estoy familiarizado con el ecosistema de Java, he descubierto que Play Framework y Lift for Scala vienen con soporte incorporado para sondeos largos.

Sin embargo, últimamente, me he vuelto parcial al middleware de mensajería, lo que me da más flexibilidad para lograr las mismas funciones. Aunque esto significa que tendrías que gestionar la presencia y la lista de listas tú mismo. Recomendaría buscar en Kafka o Rabbitmq. Incluso Redis viene con una función de pubsub bastante escalable que lo ayudaría a construir colas de mensajes (como Listas de Redis) y publicar funciones de suscripción.

Las API basadas en REST facilitan el trabajo con solicitudes HTTP para que cada mensaje sea “PUBLICADO” en el servidor y entregado a su capa de mensajería o su servidor XMPP si está trabajando con Ejabberd u Openfire.

El mensaje se obtiene al sondear periódicamente con un tiempo de espera de conexión largo (GET), que básicamente espera hasta que lleguen algunos datos al back-end para que se vea en tiempo real. Websockets, por otro lado, lo haría más basado en eventos.

REST simplemente define un conjunto de reglas para acceder al recurso detrás de él.

JSON es solo otra forma de intercambiar datos a través de la web, al igual que XML.

SOAP es otro medio de intercambio de datos mediante esquemas XML predefinidos que ayudan a estandarizar el formato en el que se intercambian los mensajes.

Con Whatsapp no ​​hay 10 conexiones de socket diferentes (que yo sepa) sino encuestas largas periódicas que esperan que lleguen nuevos datos.

Por su requerimiento, siento que Kafka o Rabbitmq o Redis serían más adecuados para implementarlo. El sitio RabbitMQ ha documentado maravillosamente las características disponibles y sería un excelente lugar para comenzar.

Es simple.

  1. Tienes una aplicación de Android. (IOS, Windows, Blackberry lo mismo)
  2. Escribe un mensaje.
  3. Está encriptado con su clave.
  4. Se envía al servidor.
  5. Luego se envía al receptor.
  6. Luego se descifra allí.
  7. Hecho.

Su implementación basada en colas muy simple

Uno puede obtener todos los detalles que esta respuesta
La respuesta de RaCHul Chavardol a Si bloqueo a una persona en WhatsApp y luego la desbloqueo, ¿recibiré los mensajes que me enviaron mientras el remitente estaba bloqueado?

El protocolo básico utilizado detrás de cualquier aplicación de chat es XMPP, que inicialmente se llamaba JABBER. Hasta hace unos años, gchat también usaba XMPP.

¿Qué es XMPP?

XMPP significa Protocolo de Presencia y Mensajería Extensivo
Los datos se envían de aquí para allá en pequeños paquetes XML llamados stanza.

Dependiendo de los requisitos de la aplicación, se modifica XMPP.

Whatsapp usa una versión modificada de XMPP.

WhatsApp Messenger es una aplicación de mensajería móvil multiplataforma que le permite intercambiar mensajes sin tener que pagar por SMS. WhatsApp Messenger está disponible para iPhone, BlackBerry, Android, Windows Phone y Nokia y sí, ¡todos esos teléfonos pueden enviarse mensajes entre sí!


Lea más sobre la visión de Whatsapp Messenger

  • Proyecto de trabajo de Whatsapp

Como saben, WhatsApp es un servicio de mensajes de texto entre teléfonos móviles. Hay un servidor temporal que almacena solo enlaces del mensaje enviado por el remitente. El receptor descarga los datos (mensaje, imágenes o videos) del remitente a través del enlace que se encuentra en el servidor temporal. Por lo tanto, hay un servidor que no es permanet que, después de descargar el mensaje, el enlace se elimina del servidor.

Entonces, en palabras simples, el remitente envía un mensaje. El enlace del mensaje se almacena en el servidor temporal. Desde el receptor del servidor temporal (cuando esté disponible, es decir, Internet abierto) obtenga el enlace del mensaje y descárguelo.

Feliz de ayudar.

Whatsapp funciona más funcionalidades diferentes como

Idioma: Erlang
Servidor: ejabbered
DB: Mnesia
Protocolo: XMPP

Más información sobre Whatsapp Work

¿Puedo obtener un trabajo detallado sobre cómo funciona WhatsApp?

Whatsapp puede o no estar usando el protocolo XMPP. Sin embargo, puede surgir algo similar a XMPP. En cuanto a su pregunta sobre cómo se lleva a cabo la comunicación en una aplicación de mensajería, aquí hay algunos puntos que se pueden considerar.

1. Cada usuario que ha iniciado sesión en el cliente realiza una conexión de socket con el servidor.

2. El usuario y el servidor realizan un apretón de manos al principio para decidir el cifrado de nivel SSL.

3. Es necesaria una conexión de socket que nunca esté cerrada, ya que no es aconsejable utilizar la solicitud get continuamente.

4. Una vez que se construye una conexión de socket, el socket nunca se cierra hasta que se cierra la aplicación o se pierde la conexión a Internet.

5. Todos los datos entrantes o salientes en el cliente que se envían o reciben en el cliente se envían al socker.

6. El cliente se ha registrado para ciertos eventos en el socket.

7. El cliente puede obtener datos en cualquier forma dependiendo del diseño.

8.Puede usar bibliotecas personalizadas para analizar datos si sus servicios web no envían datos en formato JSON o XML.

9. Cualquier dato obtenido es analizado

10. Según el cliente de datos obtenido, se puede diferenciar entre el usuario al que se envían los mensajes.

11.Puede construir un sistema en el que a cada usuario se le asigne un ID de usuario único.

12.Tal vez para grupos puedes usar la misma lógica

13.Luego puede guardar los datos en su base de datos y notificar al usuario

Envía datos sobre su plan de datos, por lo que no funciona sin ellos.

Ver: https://www.whatsapp.com/faq/en/

Hay una nueva aplicación de mensajería Actor para la cual el código fuente está disponible en github: actorapp / actor-platform La mayoría de las plataformas de mensajería funcionarían en una metodología similar

More Interesting

¿Qué cursos me pueden recomendar para aprender el desarrollo Java Android?

¿Cuáles son los comandos que se pueden usar en un terminal de Android?

En Android, estamos utilizando la función setContentView () en casi todas las clases de Java. ¿Qué le hace a nuestra aplicación?

¿Existe una aplicación gratuita para vincular Box y Salesforce?

¿Cuál es la mejor herramienta de desarrollo de aplicaciones para principiantes (Xcode, Visual Basic, Android Studio)?

Mi empresa está buscando probar nuestro SDK antes de la distribución en vivo. ¿Existe un servicio para pruebas de SDK en varias plataformas móviles (iOS y Android)?

¿Por qué no hay actualizaciones de seguridad de Android más frecuentes?

¿Qué conocimiento debe tener una persona para crear aplicaciones y juegos de Android?

¿Cómo muestro la pantalla de mi teléfono Android en mi PC sin instalar el SDK?

¿Qué tipo de base de datos debo construir para almacenar datos de redes sociales para una aplicación de Android con una base de usuarios objetivo de 1,000,000?

¿Cuándo debo usar el método view.post () para actualizar la interfaz de usuario en Android?

¿Cuáles son las aplicaciones imprescindibles de Android para facilitarnos la vida en India?

¿Cómo es la demanda de desarrolladores de Xamarin?

Cómo agregar el icono de compartir en la barra de acción en Android

Me gustaría aprender programación de juegos para la plataforma Android, siendo un desarrollador de aplicaciones, ¿qué debo saber para sobresalir como desarrollador de juegos?