Делаю свой мессенджер в целях самообучение, сделал рабочий прототип с базовыми возможностями. Далее встал вопрос о экономии трафика и кэшировании сообщений пользователей.
Клиент получает сообщения через REST API с тремя параметрами:
1. Идентификтор пользователя
2. Начало промежутка сообщений в количестве
3. Конец промежутка сообщений в количестве
Например: mysite.com/messages?user=vasya@mail.com&from=0&to=50
Значит, что я хочу получить 50 последних сообщений с переписки с пользователем "vasya@mail.com"
Отсюда выплывает три вопроса:
1. Какие есть способы кэширования данных такого типа?
2. Как потом определить надо ли мне скачивать сообщения с сервера, либо же брать из кэша (SQLite БД)?
3. Правильный ли я подход использую выкачивая сообщения из REST API, либо же можно как то по другому, так, что бы удобней было кэшировать?
Спасибо.
Я советую следующий подход.
Еще делают следующий образом:
Отправляем limit (количество сообщений, которое необходимо загрузить) и offset (с какого элемента необходимо грузить сообщения)
Увеличиваем offset на каждом последующем запросе, если нам есть что возвращать.
Например:
отправили limit: 10, offset: 0 - получили первые 10 элементов
отправили limit: 10, offset: 10 - получили элементы с 10 по 20
Продвижение своими сайтами как стратегия роста и независимости