Делаю свой мессенджер в целях самообучение, сделал рабочий прототип с базовыми возможностями. Далее встал вопрос о экономии трафика и кэшировании сообщений пользователей.
Клиент получает сообщения через 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
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
При запуске приложения с классом FaceRecognizer появляется следующая ошибка
Вечер добрый, есть несколько устройств, которые проводят измерения и передают данные на пк (у каждого прибора своя программа)Необходимо с помощью...
Столкнулся с такой проблемой: Скачал библиотеку и установил ее, но при запуске таймера приложение выводит постоянно логи в консоль (вывод...
Я хочу через css сделать ограничения чтобы моя таблица не во всю длины была на JSP странице, так вот я написал код но он не работает может не правильно...