AiThao
Технологии · AiThao

Сообщения в реальном времени

Сообщение должно появиться на другом телефоне сразу после отправки и никогда не потеряться по дороге. Это две разные задачи, и AiThao решает их в таком порядке: сначала сохранить, потом доставить.

Что это даёт вам

  • Сообщения и реакции сразу появляются на телефоне собеседника и на других ваших устройствах.
  • Телефон, который был не в сети, догружает всё, когда возвращается, без пропусков.

Как это работает

Каждое приложение держит одно авторизованное WebSocket-соединение с сервером. Когда вы отправляете сообщение, сервер сначала записывает его в базу данных и только потом публикует событие. Рядом работают несколько серверных процессов, они передают события друг другу через общий канал публикации и подписки, поэтому сообщение доставит тот процесс, к которому подключён получатель.

Если получатель не в сети, push-уведомление будит его телефон, а приложение при подключении догружает пропущенное из журнала повтора. В чате со сквозным шифрованием через всё это идёт зашифрованный конверт, который сервер прочитать не может.

Под капотом

WebSocket · Node.js · TypeScript · PostgreSQL · Redis

Частые вопросы

Что будет, если отправить сообщение без связи?

Приложение отправит его, когда связь вернётся. Как только сообщение дошло до сервера, оно сохраняется раньше, чем кого-то уведомят.

Сколько сервер хранит зашифрованное сообщение?

Пока его копию не получит каждый телефон собеседника, но не дольше 30 дней.

Посмотрите перевод в действии

Веб-демо помогает познакомиться с AiThao до выхода приложения. AiThao ожидает одобрения Apple для публикации в App Store; ссылки на установку пока нет.

Открыть демо