синхронизация базы данных мобильного устройства с сообщениями с сервера (приложение чата) - PullRequest
0 голосов
/ 22 марта 2020

У меня есть сервер для поддержки приложения для обмена мгновенными сообщениями.

Postgres для холодного хранения и перенаправления для кэша (и для других целей использования для определенных функций, таких как онлайн-статус). Кэш redis - это просто последние X-сообщения в любом заданном диалоге.

, чтобы пользователи могли просматривать чаты в автономном режиме, я планирую разместить на устройствах базу данных SQLite.

Если пользователь онлайн - тогда я просто пропускаю сообщения через WebSocket, а затем добавляю сообщение в базу данных SQLite.

Но если принимающий пользователь отключен:

  1. использовать ли что-то вроде FCM для доставки КАЖДОГО сообщения, которое они отправляют, чтобы сохранить его в SQLite в фоновом режиме?

  2. или следует хранить их сообщение на сервере, а затем, когда пользователь снова подключен, сервер передает все новые сообщения пользователю? В этом случае, однако, что, если количество новых сообщений больше, чем X, хранящийся в кэше redis - мне также нужно знать, чтобы получать дополнительные сообщения из postgres. Как это можно эффективно сделать?

...