Cosa fa per te
- Messaggi e reazioni compaiono subito sul telefono dell’altra persona e sui tuoi altri dispositivi.
- Un telefono rimasto offline recupera tutto quando torna, senza buchi.
Come funziona
Ogni app tiene aperta una connessione WebSocket autenticata con il server. Quando invii un messaggio, il server lo scrive prima nel database e solo dopo pubblica un evento. Più processi del server girano in parallelo e si passano gli eventi su un canale publish/subscribe condiviso, così consegna il processo che ha la connessione del destinatario.
Se il destinatario è offline, una notifica push sveglia il suo telefono, e l’app recupera da un log di riproduzione quando si riconnette. In una chat cifrata end-to-end, ciò che attraversa tutto questo è una busta cifrata che il server non può leggere.
Sotto il cofano
WebSocket · Node.js · TypeScript · PostgreSQL · Redis
Domande frequenti
Cosa succede se invio un messaggio senza connessione?
L’app lo invia quando la connessione torna. Appena il server lo riceve, viene salvato prima che qualcuno venga avvisato.
Per quanto tempo il server tiene un messaggio cifrato?
Finché ogni telefono del destinatario ha la sua copia, al massimo 30 giorni.