Обещал пояснить

Сабж про новый метод получения сообщений в цезии (пока этих изменений нет в репозитории, они только у меня и проходят тестирование).

Сначала клиент узнаёт из конфига, какие эхи и на каких нодах есть (не факт, что они есть, но это и так все понимают). Попутно он создаёт следующую иерархию:

echo/
echo/full
msg/
out/

При получении данных с ноды, клиент проверяет есть ли у него список сообщений (индекс) для эхоконференции в echo/. Потом забирает индекс сообщений с ноды. Если локальный индекс не найден, то берётся n последних записей из индекса ноды, они записываются в локальный индекс и скачиваются. После чего полный индекс ноды кладётся в директорию echo/full/. При последующем обмене используется индекс именно из этой директории, а индексы из echo/ используются для работы клиента.

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

Поверх этого потом можно будет весьма просто накрутить поддержку расширения стандарта для экономии трафика и ускорения обмена. Или для получения не полной копии, а произвольной выборки сообщений.

Всё равно как-то путано написал. Приступ афазии, видимо =)

PS Пока всё это не слишком удобно для ручного ковыряния в базе, но я и не ориентировал цезий на это. К тому же при минимальных усилий со стороны пользователя всегда можно получить полную копию эхи для последующего переноса/расковыривания/резервного копирования.
Ответы на это сообщение: vit01 (2015-11-09 16:08:14)
Andrew Lobanov (2015-11-09 04:24:07) [Ответить]
Предыдущее сообщение Следующее сообщение