¿WhatsApp usa MQTT?
Detrás de escena de las aplicaciones de chat
Hay muchas aplicaciones de chat en uso, pero solo algunas de ellas se destacan debido a las cualidades que tienen, que atraen a los usuarios. Dos de las mejores aplicaciones de chat se consideran Facebook Messenger y WhatsApp. Aunque estas empresas son discretas sobre la arquitectura de sus aplicaciones, logré encontrar fragmentos e información de artículos de blogs y foros. Esta es una composición de ellos, y estos hechos pueden estar desactualizados ya que todas estas aplicaciones tienden a actualizarse con frecuencia.
1. Facebook Messenger
Messenger de Facebook es una de las aplicaciones de chat más populares. Hace varios años, Messenger no estaba en su mejor forma. Su rendimiento y uso del espacio estaban empezando a quedarse atrás. El mensajero estaba usando un modelo basado en pull. Cada vez que se reconocía a la aplicación con una notificación push push -peso sobre la disponibilidad de nuevos mensajes, y luego la aplicación extraía y recibió una respuesta JSON pesada que contiene la vista de conversación. Pero más tarde, Messenger se actualizó para usar una instantánea basada en push + Delta Model.
Puntos clave:
- Messenger solía tener problemas de rendimiento y uso del espacio.
- Inicialmente utilizó un modelo basado en extracción para la recuperación de mensajes.
- Más tarde, cambió a una instantánea basada en empuje + modelo delta.
Preguntas:
- ¿Cuáles fueron los problemas con Messenger inicialmente??
- ¿A qué modelo cambió Messenger para la recuperación de mensajes??
Respuestas:
- Messenger tuvo problemas de rendimiento y uso del espacio.
- Messenger cambió de un modelo basado en pull a una instantánea basada en empuje + modelo delta.
2. Whatsapp
WhatsApp se basa en la pila de Lyme/Lyce.
Dentro de la detrás de escena de WhatsApp, una de las cosas más fascinantes e importantes es el backend escrito en Erlang. Erlang tiene una gran contribución para hacer de WhatsApp una de las mejores aplicaciones de chat del mundo.
“¿Por qué Erlang?”
Erlang es un lenguaje de programación funcional de propósito general, concurrente. Las áreas donde se sabe que Erlang es útil está manejando muchas conexiones y mensajes de enrutamiento dados algunos aspectos del mensaje. Dado que Erlang muestra un gran rendimiento en estos escenarios, la mayoría de las aplicaciones relacionadas con las telecomunicaciones usan Erlang en sus implementaciones.
La implementación inicial del servidor WhatsApp se realizó con Ejabberd, que es un servidor de mensajería instantánea Jabber/XMPP de código abierto escrito en Erlang. El protocolo de mensajería utilizado para la implementación es XMPP (protocolo de mensajería y presencia extensible).
Otro aspecto importante de una aplicación de chat es la base de datos. La mayoría de las veces, la base de datos puede convertirse en un cuello de botella de rendimiento en las aplicaciones de mensajería en tiempo real. WhatsApp usa mnesia, que se sabe que es una comunicación distribuida en tiempo real DBMS. Uno de los aspectos importantes de la mnesia es que se puede reconfigurar en tiempo de ejecución.
Aunque WhatsApp se considera bastante simple en comparación con los servicios de Messenger como Facebook Messenger, su diseño no es simple. El siguiente diagrama muestra una vista muy abstracta de la arquitectura de WhatsApp.
Automatización del hogar basada en Whatsapp: puente de protocolo con MQTT
En este artículo, controlaremos dispositivos que no admiten WhatsApp pero que admiten otros protocolos de comunicación como MQTT, TCP, IMAP, etc. Si se instala una casa con dispositivos de automatización del hogar que no admiten WhatsApp, nos comunicaremos con estos dispositivos (controladores) utilizando protocolos compatibles con estos dispositivos. Por lo tanto, podremos controlar los electrodomésticos relacionados con esos dispositivos.
Componentes requeridos:
- API WhatsApp con sede en Python – YowsUp
- Biblioteca MQTT – Paho
- Python Id
- Arduino IDE
Ideas técnicas:
El puente de protocolo también puede controlar dispositivos que no admiten la API de WhatsApp. Esto significa que simplemente enviaremos los datos de un protocolo a otro. Este artículo demostrará el puente MQTT y WhatsApp para controlar los dispositivos.
Diagrama de bloques:
Toda la comunicación será a través de un script de Python, que se instala en un sistema basado en Linux. El script de Python tendrá la Biblioteca API de WhatsApp y MQTT para comunicarse con ambos protocolos. El script puede enviar y recibir mensajes en whatsapp y mqtt.
Preguntas:
- ¿Cuáles son los componentes requeridos para la automatización del hogar basada en WhatsApp con MQTT??
- ¿Cuál es el propósito del puente de protocolo en la automatización del hogar??
Respuestas:
- Los componentes requeridos para la automatización del hogar basada en WhatsApp con MQTT son la API de WhatsApp basada en Python (YOWSUP), la Biblioteca MQTT (PAHO), Python ID y Arduino IDE.
- El puente de protocolo permite la comunicación y el control de dispositivos que no admiten la API de WhatsApp enviando datos de un protocolo (E.gramo., Mqtt) a otro.
¿WhatsApp usa MQTT?
Después de que la conexión sea exitosa, podemos enviar mensajes usando esto
publicar.Single (topic, message_data, hostname =”corredor.hivemq.comunicarse”)
Detrás de escena de las aplicaciones de chat
Hay muchas aplicaciones de chat en el uso. Pero solo pocos se destacan debido a las cualidades que llevan que atraen a los usuarios. Dos de esas mejores aplicaciones de chat se consideran Facebook Messenger y WhatsApp. Aunque estas compañías son discretas sobre la arquitectura de sus aplicaciones, logré encontrar fragmentos de información de artículos y foros de blogs. Esta es una composición de ellos y estos hechos pueden estar desactualizados ya que todas estas aplicaciones tienden a actualizarse con frecuencia.
1. Facebook Messenger
Facebook’S Messenger es una de las aplicaciones de chat más populares. Hace varios años, Messenger era’T en eso’s mejor forma. Él’El rendimiento y el uso del espacio estaban empezando a quedarse atrás. El mensajero estaba usando un modelo basado en pull. Cada vez, la aplicación era reconocida con una notificación push liviana sobre la disponibilidad de nuevos mensajes y luego la aplicación tiraría y recibía una respuesta JSON pesada que contiene la vista de conversación. Pero más tarde Messenger se actualizó para usar una instantánea basada en push + Delta Model.
MQTT es un protocolo de conectividad de máquina a máquina (m2m). Fue diseñado como un transporte de mensajería de publicación/suscripción extremadamente liviano – mqtt.organizar
Otro cambio interesante que se ha hecho en la infraestructura de mensajería es cambiar de JSON a Ahorro. Este cambio importante ha causado una reducción en el tamaño de la carga útil en un 50%.
También se han realizado mejoras significativas en el lado sever. Anteriormente, cada mensaje se escribió en un nivel de almacenamiento tradicional antes de enviar a Messenger un desencadenante para leer el mensaje del nivel de almacenamiento que hizo que la escala sea problemática. Pero el proceso fue completamente reemplazado utilizando una implementación de cola ordenada creada por Facebook llamado “Iris”. Una de las características interesantes de Iris es el uso de punteros que facilita la sincronización de mensajes entre Messenger y el nivel de almacenamiento. La siguiente imagen muestra claramente cómo se produce la sincronización de mensajes en Messenger
El procedimiento descrito anteriormente ha podido eliminar la dependencia de la entrega de mensajes de la disponibilidad y la velocidad de escritura del nivel de almacenamiento en uso. Iris almacena los mensajes temporalmente en él’s Almacenamiento de respaldo hasta que todos los mensajes se sincronizaran correctamente.
Otro hecho interesante es que el almacenamiento de respaldo de Iris se ha construido con MySQL y Flash.
2. Whatsapp
WhatsApp se basa en Lyme/Lyce Stack.
Dentro de las escenas detrás de WhatsApp, una de las cosas más fascinantes e importantes es el backend escrito en Erlang. Erlang tiene una gran contribución para hacer de WhatsApp una de las mejores aplicaciones de chat del mundo.
Por qué Erlang ?
Erlang es un lenguaje de programación funcional de propósito general, concurrente. Áreas donde se sabe que Erlang es útil
> Manejo de muchas conexiones
> Mensajes de enrutamiento dado algunos aspectos del mensaje
Dado que Erlang muestra un gran rendimiento en los escenarios dados, la mayoría de las aplicaciones relacionadas con las telecomunicaciones usan Erlang en sus implementaciones.
La implementación inicial del servidor WhatsApp se realizó con EJABBERD. Que es un servidor de mensajería instantánea de código abierto/XMPP escrito en Erlang. El protocolo de mensajería que se utiliza para la implementación es XMPP (protocolo de mensajería y presencia extensible).
Otro aspecto importante de una aplicación de chat es la base de datos. La mayoría de las veces, la base de datos puede convertirse en un cuello de botella de rendimiento en las aplicaciones de mensajería en tiempo real. WhatsApp usa mnesia, que se sabe que es una comunicación distribuida en tiempo real DBMS. Uno de los aspectos importantes de la mnesia es que se puede reconfigurar en tiempo de ejecución.
Aunque WhatsApp se considera bastante simple en comparación con los servicios de Messenger como Facebook Messenger,’S Diseño ISN’t uno simple. El siguiente diagrama muestra una vista muy abstracta de la arquitectura de WhatsApp,
Automatización del hogar basada en Whatsapp: puente de protocolo con MQTT
En este artículo, controlaremos dispositivos que no admiten WhatsApp pero que admiten otros protocolos de comunicación como MQTT, TCP, IMAP, etc. Si se instala una casa con dispositivos de automatización del hogar que no admiten WhatsApp, nos comunicaremos con estos dispositivos (controladores) utilizando protocolos compatibles con estos dispositivos.
Por lo tanto, podremos controlar los electrodomésticos relacionados con esos dispositivos.
Se requieren componentes
Herramientas requeridas/ Bibliotecas requeridas
API de WhatsApp con sede en Python-YowsUp
Biblioteca MQTT – Paho
Python Id
Arduino IDE
Ideas técnicas
El puente de protocolo también puede controlar dispositivos que no admiten WhatsApp API. Esto significa que simplemente enviaremos los datos de un protocolo a otro. Este artículo demostrará el puente MQTT y WhatsApp para controlar los dispositivos.
Diagrama de bloques
Figura 1 puente de protocolo de whatsapp y mqtt
Toda la comunicación será a través de un script de Python, que se instala en el sistema basado en Linux. El script de Python tendrá una biblioteca de la API de WhatsApp y la biblioteca MQTT para comunicarse con ambos protocolos.
El script puede enviar y recibir mensajes en whatsapp y mqtt.
Un microcontrolador (ATMEGA 328P) está conectado a los electrodomésticos a través de circuitos de retransmisión. Para fines de comunicación, el ESP está conectado al microcontrolador.
El ESP está instalado con código que recibe mensajes sobre un tema específico y envía comandos al microcontrolador a través de la serie en serie.
Entonces, ahora, cuando cualquier usuario envía mensajes en WhatsApp, va al microcontrolador a través de nuestro script de Python.
Diagrama de circuito
Esta placa está conectada a un interruptor de luz con un circuito de relé. También podemos tomar la Junta Arduino Uno en lugar de nuestra Junta personalizada 328.
Cómo funciona el sistema
Cuando un usuario envía un mensaje a nuestro sistema Linux en WhatsApp, el script lee el mensaje. El dispositivo IoT, que admite el protocolo MQTT, escucha los mensajes sobre un tema específico. Estos mensajes ordenan al dispositivo que active y apaguen un dispositivo.
Entonces, ahora los mensajes leídos por el script de Python se escanean para los comandos si se encuentran. Se envían comandos específicos al dispositivo en el protocolo MQTT. Cuando el dispositivo lee esos comandos, actúa sobre ellos encendiendo pines altos (encendido), bajo (apagado)
Comprender el código fuente
Tenemos dos tipos de código fuente, uno para Arduino + ESP y otro para el script de Python instalado en Linux.
Código para Arduino
Arduino se instala con un código que recibe datos en Serial. Cuando se recibe un strring específico como “EN” Encenderá el pasador del relé (alto) y en recibir “APAGADO” apaga el relé.
if (rec == “EN”)
DigitalWrite (Relay, High);
De serie.imprimir(“El relé está encendido”);
rec = “”;
>
if (rec == “APAGADO”)
DigitalWrite (relé, bajo);
De serie.imprimir(“El relé está apagado”);
rec = “”;
>
Código para ESP
ESP está conectado con Arduino en un puerto serie y también se suscribe en un tema MQTT para recibir datos de él. Básicamente, envía los datos recibidos sobre el tema MQTT al puerto serie y los datos del serial al tema MQTT.
Para saber más sobre ESP y MQTT, consulte nuestros artículos anteriores.
Código para el script de Python
El script de python se instala con “Cicatrización” API de WhatsApp para leer y enviar mensajes de WhatsApp. Hay dos archivos en este script correr.py y capa.py.
ENTENDER Ejecutar el archivo.py
Llamaremos a nuestras bibliotecas en la parte superior del archivo
de tiwsup.pilas importar yowstackBuilder
de tiwsup.capas.Auth Import AutorRor
de tiwsup.importación de capas Yowlayervent
de tiwsup.capas.importación de red YownetWorklayer
de tiwsup.env envado importar yowsupenv
También adjuntaremos el archivo de capa en la parte superior porque la clase principal “Ecolayer” existe dentro de ese archivo.
de la importación de capas Echolayer
Podemos nombrar el archivo de capa cualquier cosa, pero tenemos que poner el mismo nombre aquí.
Dentro de py, Declararemos nuestra variable principal para la contraseña y los eventos que queremos ocurrir.
credenciales = (“91xxxxxxxxxx”, “HKHWVW5/WNR493HXK8NKL/HTPNO =”)
Ahora los pasamos a la capa y construimos la pila. Además, el bucle que mantendrá la conexión en vivo se llama.
pila.setCredentials (credenciales)
pila.BroadcastScastEvent (YOWLAYEREVENT (YOWNETWORKLAYER.Event_state_connect)) #sending la señal de conexión
pila.bucle () #Este es el programa mainloop
Comprensión de la capa de archivo.py
Este archivo contiene la biblioteca de protocolo para MQTT y es capaz de recibir mensajes de WhatsApp.
Detener cómo se reciben los mensajes de WhatsApp
Este archivo contiene la clase que recibirá cualquier mensaje entrante a este número, y esa será una entidad de devolución de llamada para que se pueda ejecutar cualquier otro bucle dentro del archivo.
@Protocolentitycallback (“mensaje”)
Def OnMessage (self, MessageProtocolentity):
si es verdad:
Datos de mensaje y formulario de número del que llegó el mensaje se puede obtener a continuación.
incomming_message_data = MessageProtocolentity.GetBody ()
Esto obtendrá el cuerpo del mensaje, que es el mensaje real. Se almacenará en una variable de cadena “incomming_message_data”
incomming_message_sender = MessageProtocolentity.llegar desde()
Esta línea almacenará el número de contacto del mensaje entrante en la variable de cadena “incomming_message_sender”
Comprender las capas MQTT para enviar y recibir
En primer lugar, importaremos bibliotecas que sean necesarias para MQTT.
Importar paho.mqtt.cliente como MQTT
Importar paho.mqtt.publicar como publicar
Ahora declararemos una variable con nombre de cliente con el cliente MQTT.
cliente = MQTT.Cliente()
Ahora haremos dos devoluciones de llamada de funciones 1. Para recibir mensajes, 2. Haciendo algo en conexión exitoso.
cliente.on_connect = on_connect
cliente.on_message = on_message
Finalmente, nos conectaremos a MQTT Broker en un puerto e iniciaremos el cliente dentro de un bucle sin bloqueo
cliente.conectar(“corredor.hivemq.comunicarse”, 1883, 60)
cliente.Loop_start ()
Después de que la conexión sea exitosa, podemos enviar mensajes usando esto
publicar.Single (topic, message_data, hostname =”corredor.hivemq.comunicarse”)
Cuando se recibe cualquier mensaje en WhatsApp, se almacena en una cadena, y luego esa cadena se escanea para algunas palabras clave que definen ese mensaje como un comando para encender/apagar la luz.
Elif (“luces encendidas” en incomming_msg): #do algo en el partido
Si la condición coincide, enviamos el comando de control al corredor MQTT.
publicar.soltero(“TS/Luz”, “EN”, hostname =”corredor.hivemq.comunicarse”)
Cuando se ha recibido un mensaje no reconocido, el mensaje en WhatsApp responde que esto no es válido.
Y así es como podemos usar puentes de protocolo para controlar dispositivos con whatsapp.
xanecs/axioma
Esta confirmación no pertenece a ninguna rama en este repositorio, y puede pertenecer a una bifurcación fuera del repositorio.
Cambiar ramas/etiquetas
Etiquetas de ramas
No pudo cargar ramas
Nada que mostrar
No se pudo cargar etiquetas
Nada que mostrar
Nombre ya en uso
Ya existe una etiqueta con el nombre de rama proporcionado. Muchos comandos GIT aceptan los nombres de etiquetas y ramas, por lo que crear esta rama puede causar un comportamiento inesperado. ¿Estás seguro de que quieres crear esta rama??
Cancelar crear
- Local
- Espacios de códigos
Https github cli
Use git o consulte con SVN utilizando la URL web.
Trabaja rápido con nuestra CLI oficial. Aprenda más sobre el CLI.
Inicio de sesión requerido
Inicie sesión para usar CodeSpaces.
Lanzamiento de Github Desktop
Si no pasa nada, descargue el escritorio de Github y vuelva a intentarlo.
Lanzamiento de Github Desktop
Si no pasa nada, descargue el escritorio de Github y vuelva a intentarlo.
Lanzamiento de Xcode
Si no pasa nada, descargue Xcode e intente nuevamente.
Lanzamiento del código Visual Studio
Tu CodeSpace se abrirá una vez que esté listo.
Hubo un problema para preparar su espacio de código, intente nuevamente.
Último cometer
Estadísticas de git
Archivos
No se pudo cargar información de confirmación más reciente.
Último mensaje de confirmación
Tiempo de compromiso
Readme.Maryland
Axiom es un programa de Python que se conecta a un servidor MQTT y proporciona una interfaz al servicio de mensajería de WhatsApp.
- Clon este repositorio.
- Instalar dependencias
PIP Instale YowsUp2 Paho-Mqtt
- Editar waserver/config.py . Se pueden requerir credenciales de la CLI YOWSUP2. Mira aquí.
- Correr
python waserver/waserver.py
- Crear un waserver/config-pro.py
- Construir la imagen con el Dockerfile proporcionado . Los archivos de configuración de Saperate permiten diferentes configuraciones de Dev/Production.
Para recibir mensajes suscribirse a whatsapp/entrante . Un mensaje se verá así:
< "teléfono": "4915112345678", "mensaje": "Hola de un ser humano!" >
El número de teléfono en este ejemplo normalmente se escribiría +49 151 12345678 . Para mensajes grupales, el número de teléfono está en el formulario 4915112345678-1400000000 (número de teléfono del creador de grupo y la marca de tiempo de la creación de Unix).
Para enviar mensajes, publique WhatsApp/saliente:
< "teléfono": "4915112345678", "mensaje": "Hola desde un bot!" >
Actualmente solo hay un comando implementado
Para recibir información grupal (miembros, título), publicar en whatsapp/cmd
< "CMD": "grupo_info", "teléfono": "4915112345678-1400000000", "llamar de vuelta": "any_string_here" >
La devolución de llamada se utilizará para identificar la respuesta a este comando. Es aconsejable usar un UUID para este. La respuesta se publicará en el tema de WhatsApp/IQ:
< "CMD": "grupo_info", "llamar de vuelta": "any_string_here", "Identificación del grupo": "4915112345678-1400000000", "Participantes": < "4915112345678": "administración", "4915187654321": nulo, >, "sujeto": "Grupo de ejemplo" >
Acerca de
Interfaz mqtt para el servicio de mensajería de whatsapp
¿Cómo hace que WhatsApp haga sus mensajes??
Elo allí, amigo! Él’S va a ser casi dos años de la pandemia en unos pocos meses, y la forma en que hemos adaptado nuestros estilos de vida, oh chico! Todos nos mantuvimos conectados e incluso hicimos nuestro trabajo utilizando varias plataformas de mensajería. El uso de múltiples plataformas, incluidas WhatsApp, Instagram y Facebook, aumentó significativamente. WhatsApp fue el que tenía el mayor uso, y con India fue WhatsApp’S más grande mercado este año! Pero, ¿sabía que WhatsApp usa una de las estructuras de datos muy básicas, la cola, que utiliza esta plataforma de mensajería para entregar sus mensajes con éxito??
Que es la cola?
Una cola, como indica el nombre, es exactamente como la de la vida real. Una cola tiene dos extremos, una cabeza y una cola, y los elementos se agregan solo en el extremo de la cola y se retiran del extremo de la cabeza. Imagina a un grupo de personas esperando en una cola para obtener pizza, y la primera persona que llegó allí, yo.mi., el primero en la línea, se le daría preferencia y sería el que recibiera la pizza o sea “empujado.” Este concepto técnicamente se conoce como FIFO o primero en First Out.
¿Qué es una cola de mensajes??
Como indicativo del título, una cola de mensajes es una cola llena de mensajes. Este servicio asincrónico se utiliza para transferir mensajes o datos entre dos personas o un grupo de personas. La persona que envía el mensaje a la cola es el productor, y la que recibe el mensaje es el consumidor. De la cola’S punto de vista, un mensaje es solo una colección de bytes y puede ser cualquier cosa, desde un mensaje de texto normal o un mensaje que contiene un cliente’S ID de pedido o incluso un mensaje de error.
- En un sistema de colas de mensajes, hay múltiples servidores conocidos como corredores. Estos corredores son altamente confiables y escalables, y forman un clúster. Una vez que se produce o se envía un mensaje desde el lado del productor, el mensaje se almacena en la cola de mensajes hasta que el consumidor esté disponible para tomar los mensajes.
- Una vez que el consumidor o el destinatario están disponibles para recibir el mensaje, la cola empuja el mensaje al consumidor y espera a que el consumidor procese el mensaje por completo.
- Después de que el consumidor procesa el mensaje, se elimina por completo de la cola.
Soluciones de cola de mensajes
Hay múltiples software de código abierto y gratuito que se utiliza para hacer colas de mensajes.
Kafka: Apache Kafka’El sistema de mensajería S es un sistema de subscribe de publicación bien pensado y un sistema de colas que puede manejar volúmenes muy altos de datos. Kafka es tolerante a fallas y monitorea constantemente los nodos a través de varios servicios, lo que hace que sea eficiente trabajar con.
Conejo MQ: RabbitMQ es uno de los sistemas de corredores de mensajería de código abierto más utilizados que originalmente implementó el Protocolo de cola de mensajes avanzados (AMQP). Las colas son un solo hilo en este sistema, y una cola puede manejar hasta 50,000 mensajes.
Amazon SQS: Amazon Simple Queue Service es un sistema de colas de mensajes distribuido utilizado para desacoplar varios microservicios y aplicaciones sin requerirles que mantengan sus colas de mensajes. Amazon SQS también proporciona una API de servicio web al que los usuarios pueden acceder utilizando lenguajes de programación comunes.
ActivemQ: Activemq es otro sistema de corredores de mensajes escrito en Java y tiene un cliente de servicio de mensajes de Java completo. Tiene soporte AJAX y REST incorporado y admite varios protocolos como AMQP, MQTT, Stomp, etc.
¿Cómo entrega WhatsApp sus mensajes??
Antes de entrar en cómo los mensajes se ponen en cola en WhatsApp, deje’s entiende la aplicación en sí misma. Codificado con el lenguaje de programación de Erlang, WhatsApp es el más utilizado con casi 2 mil millones de usuarios mensuales. WhatsApp utiliza el protocolo de mensajería y presencia extensible de código abierto (XMPP) para facilitar los mensajes instantáneos entre dos partes. Inicialmente, WhatsApp comenzó usando el servidor EJAbbered. Con un número tan alto de usuarios diariamente, es esencial que los servidores manejen la carga de manera eficiente y el sistema sea confiable. En los años, el código se reestructuró, cambiando de XMPP a un protocolo de diseño interno y modificando algunos componentes centrales para mejorar y lograr un rendimiento óptimo del servidor.
Cuando envía un mensaje, se pone en cola en el servidor hasta que el receptor se vuelva a conectar para recuperar estos mensajes. Entonces, cuando envías un mensaje de texto a tu amigo, y si no’T tiene acceso a Internet para recibir los mensajes, estos mensajes son colas en los servidores de WhatsApp, y este proceso se conoce como el “almacenamiento y reenvio” mecanismo. Solo cuando el receptor acepta los mensajes, se limpian del servidor y se eliminan de la cola. Más tarde, cuando el receptor tiene una conexión a Internet, estos mensajes se les entregan o son recuperados por el receptor. Cuando el receptor finalmente reconoce que se ha recibido el mensaje, la recuperación exitosa del mensaje se envía de regreso al servidor de WhatsApp, y esto es cuando ve la marca doble junto a sus mensajes.
Estas estructuras de datos son largas, y tener una buena comprensión de esto también le llevará un largo camino. Entonces, la próxima vez que su maestro comience a discutir las estructuras de datos, preste buena atención allí. Sí? Bueno?
Bueno, luego nos vemos la próxima vez!