← Все работы

Мессенджер Maestrosnov: состояния сообщений без отката

Прочитанное сообщение сохраняет свой статус после запоздалого ответа сервера. Разбор исходной клиентской логики, квитанций и расшифровки.

Дата выпуска кейса
КлиентМаэстро Снов
РольКлиентская синхронизация и состояния сообщений
ПроектЗавершён

О проекте

Маэстро Снов

Цель

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

Результат

В исходной реализации объединение сохраняет подтвержденный прогресс. В приложенном разборе выполнены три последовательности событий, слияние старой квитанции и запоздалой расшифровки; каждый результат можно повторить.

Что передано заказчику

  • Интерактивный разбор состояний
  • Исходный модуль и контрольная сумма
  • Воспроизводимые сценарии проверки

Инструменты и подход

Инструменты

Next.js · Не указанReact · Не указанTypeScript · Не указанGo · Не указанPostgreSQL · Не указанOpenSearch · Не указанWebSocket · Не указанPWA · Не указан
Указано специалистом

Состояние отражает подтверждённый факт

Для отправки, доставки и прочтения задан порядок состояний. Старое событие «отправлено» после «прочитано» не понижает статус. Ошибка до подтверждения остаётся видимой, пока сервер не подтвердит результат; поздняя сетевая ошибка уже принятого сообщения не отменяет отправку.

Версии защищают квитанции и текст

Счётчики квитанций объединяются с сохранением прогресса, а ревизия позволяет отличить новый снимок от старого. Готовая расшифровка версии 9 сохраняет текст, когда следом приходит «обрабатывается» версии 8. В интерактивном разборе работает функция из сохранённого исходника проекта.

Исходник и результаты проверки

Вклад и команда

Клиентская синхронизация и состояния сообщений

Ссылки и материалы

Другие работы

Материалы проекта и сведения о выполненной работе предоставлены Riders Agency.

Обсуждение

Задайте вопрос об этой работе, обсудите решение или поделитесь своим опытом.

Обсуждение открыто для всех участников.

Загружаем комментарии…