Прочитанное сообщение сохраняет свой статус после запоздалого ответа сервера. Разбор исходной клиентской логики, квитанций и расшифровки.
О проекте
Маэстро Снов
Цель
После обрыва связи старые ответы могут приходить позже новых. Если применять их по очереди, прочитанное сообщение снова выглядит только отправленным, а готовая расшифровка возвращается к обработке.
Результат
В исходной реализации объединение сохраняет подтвержденный прогресс. В приложенном разборе выполнены три последовательности событий, слияние старой квитанции и запоздалой расшифровки; каждый результат можно повторить.
Что передано заказчику
- Интерактивный разбор состояний
- Исходный модуль и контрольная сумма
- Воспроизводимые сценарии проверки
Инструменты и подход
Инструменты
Содержание 3
Состояние отражает подтверждённый факт
Для отправки, доставки и прочтения задан порядок состояний. Старое событие «отправлено» после «прочитано» не понижает статус. Ошибка до подтверждения остаётся видимой, пока сервер не подтвердит результат; поздняя сетевая ошибка уже принятого сообщения не отменяет отправку.
Версии защищают квитанции и текст
Счётчики квитанций объединяются с сохранением прогресса, а ревизия позволяет отличить новый снимок от старого. Готовая расшифровка версии 9 сохраняет текст, когда следом приходит «обрабатывается» версии 8. В интерактивном разборе работает функция из сохранённого исходника проекта.
Исходник и результаты проверки
Вклад и команда
Клиентская синхронизация и состояния сообщений
Загружаем комментарии…