Technologie · AiThao

Doručování zpráv v reálném čase

Zpráva by se měla na druhém telefonu objevit v okamžiku, kdy ji odešlete, a nikdy by se neměla po cestě ztratit. To jsou dva odlišné úkoly a AiThao je provádí v tomto pořadí: nejprve uložit, potom doručit.

Co to přináší vám

  • Zprávy a reakce se na telefonu druhého člověka i na vašich dalších zařízeních objeví okamžitě.
  • Telefon, který byl offline, po návratu do sítě vše plynule a bez mezer doplní.

Jak to funguje

Každá aplikace udržuje jedno ověřené spojení WebSocket otevřené k serveru. Když odešlete zprávu, server ji nejprve zapíše do databáze a teprve poté publikuje událost. Několik serverových procesů běží vedle sebe a předává si události přes sdílený kanál publish/subscribe, takže zprávu doručí ten proces, který právě obsluhuje spojení příjemce.

Pokud je příjemce offline, push oznámení probudí jeho telefon a aplikace po opětovném připojení doplní zprávy z protokolu přehrávání. V koncově šifrovaném chatu tímto systémem prochází zašifrovaná obálka, kterou server nedokáže přečíst.

Pod kapotou

WebSocket · Node.js · TypeScript · PostgreSQL · Redis

Časté otázky

Co se stane, když odešlu zprávu bez připojení?

Aplikace ji odešle, jakmile se spojení obnoví. Jakmile ji server obdrží, je uložena dříve, než je kdokoli upozorněn.

Jak dlouho server uchovává zašifrovanou zprávu?

Dokud si ji nevyzvednou všechny telefony příjemce, nejvýše však 30 dní.