Що це дає вам
- Повідомлення і реакції одразу з’являються на телефоні співрозмовника і на ваших інших пристроях.
- Телефон, що був офлайн, після повернення наздоганяє все без пропусків.
Як це працює
Кожен застосунок тримає до сервера одне автентифіковане з’єднання WebSocket. Коли ви надсилаєте повідомлення, сервер спершу записує його в базу даних і лише потім публікує подію. Кілька серверних процесів працюють поруч і передають події одне одному через спільний канал публікації/підписки, тож доставляє той процес, який тримає з’єднання одержувача.
Якщо одержувач офлайн, push-сповіщення будить його телефон, а застосунок після підключення наздоганяє все з журналу повторів. У наскрізно зашифрованому чаті всім цим шляхом іде зашифрований конверт, який сервер не може прочитати.
Під капотом
WebSocket · Node.js · TypeScript · PostgreSQL · Redis
Часті запитання
Що буде, якщо надіслати повідомлення без зв’язку?
Застосунок надішле його, коли зв’язок повернеться. Щойно сервер його отримав, він зберігає його, перш ніж когось сповістити.
Скільки сервер зберігає зашифроване повідомлення?
Доки кожен телефон одержувача не отримає свою копію, щонайбільше 30 днів.