WhatsApp usa mqtt
WhatsApp usa mqtt
Dietro le quinte delle applicazioni di chat
Ci sono molte applicazioni di chat in uso, ma solo alcune si distinguono per le qualità che portano, che attirano gli utenti. Due delle migliori app di chat sono considerate Messenger di Facebook e WhatsApp. Sebbene queste aziende siano discrete sull’architettura delle loro applicazioni, sono riuscito a trovare bit e informazioni da articoli e forum di blog. Questa è una loro composizione e questi fatti possono essere obsoleti poiché tutte queste applicazioni tendono ad essere aggiornate frequentemente.
1. Facebook Messenger
Facebook’s Messenger è una delle applicazioni di chat più popolari. Diversi anni fa, Messenger non era nella sua forma migliore. Le sue prestazioni e l’utilizzo dello spazio stavano iniziando a rimanere indietro. Il Messenger stava usando un modello basato su pull. Ogni volta che l’app veniva riconosciuta con una notifica push leggera sulla disponibilità di nuovi messaggi, quindi l’app tirava e riceveva una pesante risposta JSON contenente la vista della conversazione. Ma più tardi, Messenger è stato aggiornato per utilizzare un modello di snapshot + delta push.
Punti chiave:
- Messenger aveva problemi di utilizzo delle prestazioni e dello spazio.
- Inizialmente ha usato un modello basato su pull per il recupero dei messaggi.
- Successivamente, è passato a un modello di istantanea + Delta a base di push.
Domande:
- Quali erano inizialmente i problemi con Messenger?
- A quale modello ha cambiato Messenger per il recupero dei messaggi?
Risposte:
- Messenger aveva problemi di utilizzo dello spazio e di spazio.
- Messenger passò da un modello basato su pull a un modello di istantanea push-basato su push.
2. WhatsApp
WhatsApp si basa sullo stack Lyme/Lyce.
All’interno delle quinte di WhatsApp, una delle cose più affascinanti e importanti è il backend scritto in Erlang. Erlang ha un enorme contributo a rendere WhatsApp una delle migliori app di chat al mondo.
“Perché Erlang?”
Erlang è un linguaggio di programmazione funzionale per uso generale, concomitante. Le aree in cui Erlang è utile per essere utili stanno gestendo molte connessioni e messaggi di routing dati alcuni aspetti del messaggio. Poiché Erlang mostra grandi prestazioni in questi scenari, la maggior parte delle applicazioni relative alle telecomunicazioni utilizza ERLANG nelle loro implementazioni.
L’implementazione iniziale del server WhatsApp è stata eseguita utilizzando Ejabberd, che è un server di messaggistica istantanea Jabber/XMPP open source scritto in Erlang. Il protocollo di messaggistica utilizzato per l’implementazione è XMPP (protocollo estensibile di messaggistica e presenza).
Un altro aspetto importante di un’applicazione di chat è il database. Il più delle volte, il database può diventare un collo di bottiglia delle prestazioni nelle app di messaggistica in tempo reale. WhatsApp usa la Mnesia, che è noto per essere una comunicazione distribuita in tempo reale DBMS. Uno degli aspetti importanti della Mnesia è che può essere riconfigurato in fase di esecuzione.
Sebbene WhatsApp sia considerato abbastanza semplice rispetto ai servizi di messaggistica come Facebook Messenger, il suo design non è semplice. Il seguente diagramma mostra una vista molto astratta dell’architettura WhatsApp.
Automazione domestica basata su WhatsApp: Bridging Protocol con MQTT
In questo articolo, controlleremo dispositivi che non supportano WhatsApp ma supporteremo altri protocolli di comunicazione come MQTT, TCP, IMAP, ecc. Se una casa è installata con dispositivi di automazione domestica che non supportano WhatsApp, comunicheremo con questi dispositivi (controller) utilizzando i protocolli supportati da questi dispositivi. Pertanto, saremo in grado di controllare gli apparecchi domestici connessi a quei dispositivi.
Componenti richiesti:
- API Whatsapp basato su Python – Yowsup
- Biblioteca MQTT – Paho
- Python Id
- Arduino ide
Insights Technical:
Il ponte del protocollo può anche controllare i dispositivi che non supportano l’API di WhatsApp. Ciò significa che invieremo semplicemente i dati da un protocollo a un altro. Questo articolo dimostrerà MQTT e WhatsApp Bridge per controllare i dispositivi.
Diagramma a blocchi:
Tutta la comunicazione avverrà tramite uno script Python, che è installato su un sistema basato su Linux. Lo script Python avrà l’API Whatsapp e la libreria MQTT per comunicare con entrambi i protocolli. Lo script può inviare e ricevere messaggi su WhatsApp e MQTT.
Domande:
- Quali sono i componenti richiesti per l’automazione domestica basata su WhatsApp con MQTT?
- Qual è lo scopo del protocollo che si collega nell’automazione domestica?
Risposte:
- I componenti richiesti per l’automazione domestica basata su WhatsApp con MQTT sono API WhatsApp (YouSUP), Biblioteca MQTT (PAHO), ID Python basato su Python e Arduino IDE.
- Il ponte del protocollo consente la comunicazione e il controllo di dispositivi che non supportano l’API WhatsApp inviando dati da un protocollo (E.G., Mqtt) a un altro.
WhatsApp usa mqtt
Dopo il successo della connessione, possiamo inviare messaggi utilizzando questo
pubblicare.singolo (argomento, messaggio_data, hostname =”broker.Hivemq.com”)
Dietro le quinte delle applicazioni di chat
Ci sono molte applicazioni di chat in uso. Ma solo pochi di loro straordinari a causa delle qualità che portano che attirano gli utenti. Due di queste migliori app di chat sono considerate come Messenger di Facebook e WhatsApp. Sebbene queste aziende siano discrete sull’architettura delle loro applicazioni, sono riuscito a trovare bit e informazioni da articoli e forum di blog. Questa è una loro composizione e questi fatti possono essere obsoleti poiché tutte queste applicazioni sono tendono ad essere aggiornate frequentemente.
1. Facebook Messenger
Facebook’S Messenger è una delle applicazioni di chat più popolari. Diversi anni fa, Messenger Wasn’t su di esso’s migliore forma. Esso’le prestazioni e l’utilizzo dello spazio stavano iniziando a rimanere indietro. Il Messenger stava usando un modello basato su pull. Ogni volta, l’app veniva riconosciuta con una notifica push leggera sulla disponibilità di nuovi messaggi e quindi l’app tirebbe e riceveva una pesante risposta JSON contenente la vista di conversazione. Ma successivo Messenger è stato aggiornato per utilizzare un modello di snapshot + delta push.
MQTT è un protocollo di connettività macchina a macchina (M2M). È stato progettato come un trasporto di messaggistica pubblicitario/iscrizione estremamente leggero – mqtt.org
Un altro cambiamento interessante che è stato fatto nell’infrastruttura di messaggistica è passare da JSON a Parsimonia. Questa grande modifica ha causato una riduzione della dimensione del payload del 50%.
Ci sono stati miglioramenti significativi anche nel lato severo. In precedenza ogni messaggio è stato scritto su un livello di archiviazione tradizionale prima di inviare un trigger a Messenger per leggere il messaggio dal livello di archiviazione che ha reso problematico il ridimensionamento. Ma il processo è stato completamente sostituito utilizzando un’implementazione della coda ordinata creata dalla stessa Facebook chiamata “Iris”. Una delle caratteristiche interessanti di Iris è l’uso di puntatori che facilita la sincronizzazione dei messaggi tra Messenger e il livello di archiviazione. La seguente immagine mostra chiaramente come la sincronizzazione dei messaggi avviene in Messenger
La procedura sopra descritta è stata in grado di rimuovere la dipendenza della consegna dei messaggi dalla disponibilità e la velocità di scrittura del livello di archiviazione in uso. Iris memorizza temporaneamente i messaggi’S di supporto al supporto fino a quando tutti i messaggi si sono sincronizzati correttamente.
Un altro fatto interessante è che la memoria di supporto di Iris è stata costruita utilizzando MySQL e Flash.
2. WhatsApp
WhatsApp si basa su Lyme/Lyce Stack.
All’interno delle scene di WhatsApp, una delle cose più affascinanti e importanti è il backend scritto in Erlang. Erlang ha un enorme contributo per rendere WhatsApp una delle migliori app di chat al mondo.
Perché Erlang ?
Erlang è un linguaggio di programmazione funzionale per uso generale, concomitante. Le aree in cui Erlang è nota per essere utili sono
> Gestione di molte connessioni
> Messaggi di routing dati alcuni aspetti del messaggio
Poiché Erlang mostra una grande performance negli scenari forniti la maggior parte delle applicazioni relative alle telecomunicazioni utilizza ERLANG nelle loro implementazioni.
L’implementazione iniziale del server WhatsApp è stata eseguita utilizzando Ejabberd. Che è un server di messaggistica istantanea Jabber/XMPP open source scritto in Erlang. Il protocollo di messaggistica utilizzato per l’implementazione è XMPP (protocollo di messaggistica e presenza estensibile).
Un altro aspetto importante di un’applicazione di chat è il database. Il più delle volte, il database può diventare un collo di bottiglia delle prestazioni nelle app di messaggistica in tempo reale. WhatsApp usa la Mnesia che è noto per essere una comunicazione distribuita in tempo reale DBMS. Uno degli aspetti importanti della Mnesia è che può essere riconfigurato in fase di esecuzione.
Sebbene WhatsApp sia considerato abbastanza semplice rispetto ai servizi di messaggistica come Facebook Messenger, esso’s design non è’t Uno semplice. Il seguente diagramma mostra una vista molto astratta dell’architettura WhatsApp,
Automazione domestica basata su WhatsApp: Bridging Protocol con MQTT
In questo articolo, controlleremo dispositivi che non supportano WhatsApp ma supporteremo altri protocolli di comunicazione come MQTT, TCP, IMAP, ecc. Se una casa è installata con dispositivi di automazione domestica che non supportano WhatsApp, comunicheremo con questi dispositivi (controller) utilizzando i protocolli supportati da questi dispositivi.
Pertanto, saremo in grado di controllare gli apparecchi domestici connessi a quei dispositivi.
Componenti richiesti
Strumenti richiesti/ librerie richieste
API Whatsapp basato su Python-Yowsup
Biblioteca MQTT – Paho
Python Id
Arduino ide
Approfondimenti tecnici
Il ponte del protocollo può anche controllare i dispositivi che non supportano API WhatsApp. Ciò significa che invieremo semplicemente i dati da un protocollo a un altro. Questo articolo dimostrerà MQTT e WhatsApp Bridge per controllare i dispositivi.
Diagramma a blocchi
Figura 1 Bridging del protocollo WhatsApp e MQTT
Tutta la comunicazione avverrà tramite uno script Python, che è installato nel sistema basato su Linux. Lo script Python avrà API WhatsApp e Libreria MQTT per comunicare con entrambi i protocolli.
Lo script può inviare e ricevere messaggi su WhatsApp e MQTT.
Un microcontrollore (ATmega 328p) è collegato agli elettrodomestici attraverso i circuiti di relè. Ai fini della comunicazione, l’ESP è collegato al microcontrollore.
L’ESP è installato con codice che riceve messaggi su un argomento specifico e invia comandi al microcontrollore tramite UART seriale.
Quindi, ora quando un utente invia messaggi su WhatsApp, va al microcontrollore tramite il nostro script Python.
Schema elettrico
Questa scheda è collegata a un interruttore della luce con un circuito di relè. Possiamo anche prendere la scheda Arduino Uno invece della nostra scheda 328 personalizzata.
Come funziona il sistema
Quando un utente invia un messaggio al nostro sistema Linux su WhatsApp, lo script legge il messaggio. Il dispositivo IoT, che supporta il protocollo MQTT, ascolta i messaggi su un argomento specifico. Questi messaggi comandano il dispositivo per attivare e disattivare un appliance.
Quindi, ora i messaggi letti dallo script Python sono scansionati per i comandi se trovati. I comandi specifici vengono inviati al dispositivo sul protocollo MQTT. Quando il dispositivo legge quei comandi, agisce su di essi girando i pin in alto (acceso), basso (spento)
Comprensione del codice sorgente
Abbiamo due tipi di codice sorgente, uno per Arduino + ESP e un altro per lo script Python installato in Linux.
Codice per Arduino
Arduino è installato con un codice che riceve dati sul seriale. Quando viene ricevuta una stringa specifica come “SU” Accenderà il pin di relè su (alto) e alla ricezione “SPENTO” spegne il relè.
if (rec == “SU”)
DigitalWrite (relè, alto);
Seriale.stampa(“Il relè è acceso”);
Rec = “”;
>
if (rec == “SPENTO”)
DigitalWrite (relè, basso);
Seriale.stampa(“Il relè è spento”);
Rec = “”;
>
Codice per esp
ESP è connesso con Arduino su una porta seriale e si è anche sottoscritto su un argomento MQTT per ricevere dati da esso. Fondamentalmente, invia i dati ricevuti sull’argomento MQTT alla porta seriale e ai dati dal seriale all’argomento MQTT.
Per saperne di più su ESP e MQTT, consultare i nostri articoli precedenti.
Codice per lo script Python
Lo script Python è installato con “Yowsup” API WhatsApp per leggere e inviare messaggi da WhatsApp. Ci sono due file in questo script correre.Py E strato.Py.
Comprendere l’esecuzione dei file.Py
Chiameremo le nostre biblioteche nella parte superiore del file
da yowsup.IMPATTI importa Yowstackbuilder
da yowsup.strati.AUTH Import Autherror
da yowsup.Strati Import Yowlayerevent
da yowsup.strati.Network Import YownetWorklayer
da yowsup.Env Import yowsupenv
Allegheremo anche il file di livello in alto perché la classe principale “Ecolayer” esiste all’interno di quel file.
da Echolayer di importazione a livello
Possiamo nominare qualsiasi cosa del file di livello, ma dobbiamo mettere lo stesso nome qui.
Dentro il Py, Dichiareremo la nostra variabile principale per la password ed eventi che vogliamo verificarsi.
credenziali = (“91xxxxxxxxxx”, “HKHWVW5/WNR493HXK8NKL/HTPNO =”)
Ora li passiamo allo strato e costruiamo lo stack. Inoltre, il ciclo che manterrà la connessione in diretta si chiama.
pila.SetCredentials (credenziali)
pila.BroadcastEvent (Yowlayerevent (YownetWorklayer.Event_state_connect)) #sendendo il segnale di connessione
pila.Loop () #This è il programma mainloop
Comprensione del livello dei file.Py
Questo file contiene la libreria di protocollo per MQTT ed è in grado di ricevere messaggi da WhatsApp.
Sottovalutare il modo in cui i messaggi vengono ricevuti da WhatsApp
Questo file contiene la classe che riceverà qualsiasi messaggio in arrivo a questo numero e che sarà un’entità di callback in modo che qualsiasi altro ciclo possa essere eseguito all’interno del file.
@ProtocoLentyCallback (“Messaggio”)
def onMessage (self, messageprotocoltenità):
se è vero:
Dati dei messaggi e modulo numerico da cui è stato ottenuto il messaggio.
incoming_message_data = messageprotocoltenità.getbody ()
Questo otterrà il corpo del messaggio che è il vero messaggio. Si archiverà in una variabile di stringa “incoming_message_data”
incoming_message_sender = messageprotocoltenità.ottenere da()
Questa riga memorizzerà il numero di contatto del messaggio in arrivo nella variabile stringa “incoming_message_sender”
Comprensione dei livelli MQTT per l’invio e la ricezione
Prima di tutto, importeremo librerie necessarie per MQTT.
Importa Paho.mqtt.Client come MQTT
Importa Paho.mqtt.Pubblica come pubblicazione
Ora dichiareremo una variabile denominata client MQTT.
client = mqtt.Cliente()
Ora faremo due callback di funzione 1. Per la ricezione di messaggi, 2. Fare qualcosa sulla connessione di successo.
cliente.on_connect = on_connect
cliente.on_message = on_message
Infine, ci connetteremo al broker MQTT su una porta e avvieremo il client all’interno di un ciclo non bloccante
cliente.Collegare(“broker.Hivemq.com”, 1883, 60)
cliente.loop_start ()
Dopo il successo della connessione, possiamo inviare messaggi utilizzando questo
pubblicare.singolo (argomento, messaggio_data, hostname =”broker.Hivemq.com”)
Quando viene ricevuto un messaggio su WhatsApp, viene archiviato in una stringa e quindi quella stringa viene scansionata per alcune parole chiave che definiscono quel messaggio come comando per accendere/spegnere.
Elif (“luci accese” in incoming_msg): #do qualcosa in corrispondenza
Se la condizione è abbinata, inviamo il comando di controllo al broker MQTT.
pubblicare.separare(“ts/luce”, “SU”, hostname =”broker.Hivemq.com”)
Quando è stato ricevuto un messaggio non riconosciuto, il messaggio su WhatsApp risponde che questo non è valido.
Ed è così che possiamo usare il ponte del protocollo per controllare i dispositivi con WhatsApp.
Xanecs/Axiom
Questo commit non appartiene a nessun ramo in questo repository e può appartenere a una forchetta al di fuori del repository.
Switch Branches/Tags
Tag di rami
Impossibile caricare i rami
Niente da mostrare
Impossibile caricare tag
Niente da mostrare
Nome già in uso
Un tag esiste già con il nome della filiale fornito. Molti comandi git accettano nomi di tag e ramo, quindi la creazione di questo ramo può causare comportamenti imprevisti. Sei sicuro di voler creare questo ramo?
Annulla Crea
- Locale
- Codpaces
Https github cli
Utilizzare GIT o checkout con SVN utilizzando l’URL Web.
Lavorare velocemente con la nostra CLI ufficiale. Ulteriori informazioni sulla CLI.
Autenticazione richiesta
Si prega di accedere per utilizzare Codespaces.
Avvio del desktop GitHub
Se non succede nulla, scarica Github Desktop e riprova.
Avvio del desktop GitHub
Se non succede nulla, scarica Github Desktop e riprova.
Avvio di Xcode
Se non succede nulla, scarica Xcode e riprova.
Avvio del codice Visual Studio
Il tuo Codpace si aprirà una volta pronto.
C’è stato un problema a preparare il tuo codice, riprova.
Ultimo commit
Statistiche git
File
Impossibile caricare le ultime informazioni sulla commissione.
Ultimo messaggio di commit
Commettere tempo
Readme.MD
Axiom è un programma Python che si collega a un server MQTT e fornisce un’interfaccia al servizio di messaggistica WhatsApp.
- Clone questo repository.
- Installa dipendenze
PIP Installa Yowsup2 Paho-MQTT
- Modifica waserver/config.Py . Le credenziali possono essere richieste dalla CLI Yowsup2. Vedere qui.
- Correre
Python Waserver/Waserver.Py
- Crea un waserver/config-prod.Py
- Costruisci l’immagine con Dockerfile fornito . I file di configurazione separati consentono diverse configurazioni di dev/produzione.
Per ricevere i messaggi, iscriviti a WhatsApp/in arrivo . Un messaggio sembrerà così:
< "telefono": "4915112345678", "Messaggio": "Ciao da un essere umano!" >
Il numero di telefono in questo esempio verrebbe normalmente scritto +49 151 12345678 . Per i messaggi di gruppo, il numero di telefono è nel modulo 4915112345678-1400000000 (numero di telefono del creatore del gruppo e timestamp UNIX della creazione).
Per inviare messaggi, pubblicare su WhatsApp/in uscita:
< "telefono": "4915112345678", "Messaggio": "Ciao da un bot!" >
Attualmente c’è solo sul comando implementato
Per ricevere informazioni di gruppo (membri, titolo), pubblicare su whatsapp/cmd
< "CMD": "group_info", "telefono": "4915112345678-1400000000", "richiamare": "Any_string_here" >
Il callback verrà utilizzato per identificare la risposta a questo comando. È consigliabile utilizzare un uuid per questo. La risposta sarà pubblicata sull’argomento WhatsApp/IQ:
< "CMD": "group_info", "richiamare": "Any_string_here", "Groupid": "4915112345678-1400000000", "Partecipanti": < "4915112345678": "amministratore", "4915187654321": nullo, >, "soggetto": "Gruppo di esempio" >
Di
MQTT-Interface per il servizio di messaggistica WhatsApp
In che modo WhatsApp mettono in fila i tuoi messaggi?
Elo lì, amico! Esso’Sarà quasi due anni di pandemia tra qualche mese e il modo in cui abbiamo adattato i nostri stili di vita, oh ragazzo! Siamo rimasti tutti in contatto e abbiamo anche fatto il nostro lavoro utilizzando varie piattaforme di messaggistica. L’utilizzo di più piattaforme, tra cui WhatsApp, Instagram e Facebook, è aumentato in modo significativo. WhatsApp era quello con il massimo utilizzo e con l’India che è Whatsapp’S più grande mercato quest’anno! Ma sapevi che WhatsApp utilizza una delle strutture di dati di base, la coda, che viene utilizzata da questa piattaforma di messaggistica per consegnare i tuoi messaggi correttamente?
Cos’è la coda?
Una coda, come indica il nome, è esattamente come quella nella vita reale. Una coda ha due estremità, una testa e una coda e gli oggetti vengono aggiunti solo nell’estremità della coda e rimossi dall’estremità della testa. Immagina un gruppo di persone che aspettano in coda per prendere la pizza e la prima persona che è arrivata lì, io.e., Il primo in linea, sarebbe dato la preferenza e sarebbe quello a ricevere la pizza o essere “spinto fuori.” Questo concetto tecnicamente è noto come FIFO o il primo al primo fuori.
Cos’è una coda di messaggi?
Come indicativo del titolo, una coda di messaggi è una coda piena di messaggi. Questo servizio asincrono viene utilizzato per trasferire messaggi o dati tra due persone o un gruppo di persone. La persona che invia il messaggio in coda è il produttore e colui che riceve il messaggio è il consumatore. Dalla coda’punto di vista, un messaggio è solo una raccolta di byte e può essere qualsiasi cosa da un normale messaggio di testo o un messaggio contenente un cliente’S ID ordine o anche un messaggio di errore.
- In un sistema di coda di messaggi, ci sono più server noti come broker. Questi broker sono altamente affidabili e scalabili e formano un cluster. Una volta prodotto o inviato un messaggio dal lato produttore, il messaggio viene archiviato nella coda dei messaggi fino a quando il consumatore è disponibile a prendere i messaggi.
- Una volta disponibile il consumatore o il destinatario per prendere il messaggio, la coda spinge il messaggio al consumatore e attende che il consumatore elabora il messaggio completamente.
- Dopo che il consumatore elabora il messaggio, viene completamente eliminato dalla coda.
Soluzioni in coda dei messaggi
Ci sono più software open source e gratuiti che vengono utilizzati per la coda di messaggi.
Kafka: Apache Kafka’Il sistema di messaggistica S è un sistema di iscrizione pubblicitario ben ponderato e un sistema di accodamento in grado di gestire volumi di dati molto elevati. Kafka è tollerante ai guasti e monitora costantemente i nodi attraverso vari servizi, rendendo efficiente il lavoro con.
Rabbit MQ: RabbitMQ è uno dei sistemi di broker di messaggistica più utilizzati più utilizzati che hanno originariamente implementato il protocollo avanzato di coda di messaggi (AMQP). Le code sono un singolo thread in questo sistema e una coda può gestire fino a 50.000 messaggi.
Amazon Sqs: Amazon Simple Queue Service è un sistema di accodamento di messaggi distribuito utilizzato per disaccoppiarsi vari microservizi e applicazioni senza richiedere loro di mantenere le loro code di messaggi. Amazon SQS fornisce anche un’API di servizio Web a cui gli utenti possono accedere utilizzando linguaggi di programmazione comuni.
ActiveMq: ActiveMQ è un altro sistema di broker di messaggi scritto in Java e ha un client di servizio di messaggi Java completo. Ha un supporto AJAX e REST integrato e supporta vari protocolli come AMQP, MQTT, STOMP, ecc.
In che modo WhatsApp consegna i tuoi messaggi?
Prima di entrare in come i messaggi vengono messi in coda in WhatsApp, lascia’s Comprendi l’app stessa. Codificato usando il linguaggio di programmazione Erlang, WhatsApp è il più usato con quasi 2 miliardi di utenti mensili. WhatsApp utilizza il protocollo estensibile di messaggistica e presenza (XMPP) per facilitare i messaggi istantanei tra due parti. Inizialmente, WhatsApp ha iniziato utilizzando il server ejabbered. Con un numero così elevato di utenti quotidianamente, è essenziale che i server gestiscano il carico in modo efficiente e il sistema sia affidabile. Negli anni, il codice è stato ristrutturato, passando da XMPP a un protocollo progettato internamente e modificando alcuni componenti di base per migliorare e ottenere prestazioni ottimali del server.
Come e quando si invia un messaggio, viene messo in coda nel server fino a quando il ricevitore si riconnette per recuperare questi messaggi. Quindi quando mandi un messaggio al tuo amico e se non’T ha accesso a Internet per ricevere i messaggi, questi messaggi sono code nei server WhatsApp e questo processo è noto come il “negozio e avanti” meccanismo. Solo quando il ricevitore accetta i messaggi vengono cancellati dal server ed eliminati dalla coda. Più tardi, quando il ricevitore ha una connessione Internet, questi messaggi vengono consegnati o vengono recuperati dal ricevitore. Quando il ricevitore finalmente riconosce che il messaggio è stato ricevuto, il recupero riuscito del messaggio viene inviato al server WhatsApp, e questo è quando si vede il segno di doppia spunta accanto ai tuoi messaggi.
Queste strutture di dati vanno a lungo e avere una buona comprensione di questo ti porterà anche molto. Quindi la prossima volta che il tuo insegnante inizia a discutere delle strutture di dati, presta buona attenzione lì. Sì? Va bene?
Bene, allora ci vediamo la prossima volta!