Delivered в MCData может означать запись в хранилище: как проверить получение на устройстве
Отправитель MCData получил статус delivered, хотя телефон адресата всё ещё выключен. В настроенном сценарии lossless это может быть правильным результатом. Стандарт предусматривает подтверждение доставки после помещения данных в личное хранилище получателя. Получение на устройство и последующее прочтение или скачивание при этом являются отдельными событиями.
Где данные оказались
Для недоступного пользователя с lossless communication сервер сообщает delivered после депонирования коммуникации в его message store. Это подтверждает предусмотренный этап обслуживания. Из такого отчёта нельзя автоматически заключить, что пользователь уже увидел текст или что файл находится в памяти его терминала.
Если отправитель запросил подтверждение прочтения сообщения либо скачивания файла, соответствующий результат появляется после синхронизации на устройстве и обработки получателем. Поэтому интерфейс должен сохранять различие между запрошенными видами отчётов, а не сводить их к одной окончательной отметке.
Почему важно знать режим
При deferred delivery стандарт описывает другой подход: сервер может сообщить предварительное состояние, например недоступность адресата и ожидание доставки. Данные могут быть доставлены позднее либо удалены при истечении срока. Такой предварительный отчёт не следует считать тем же событием, что delivered после записи в личное хранилище lossless.
Следовательно, слово в журнале читают вместе с режимом и источником отчёта. Без этого одинаково оформленная галочка способна скрыть принципиально разное местонахождение данных.
Проверка для диспетчерской системы
В тесте отправляют известное сообщение недоступному пользователю при включённом lossless и запрашивают нужные статусы. Проверяют момент депонирования, полученный отчёт отправителю и отсутствие ложного отображения «прочитано». Затем включают устройство и наблюдают синхронизацию и последующую обработку.
Для файла выполняют отдельный сценарий скачивания. Нельзя заменять его чтением уведомления о наличии файла: это разные действия. Временные отметки и идентификаторы связывают с одним объектом, чтобы не перепутать несколько сообщений.
Полезно проверить и обычный случай доступного адресата. Тогда становится видно, что различие событий связано с реальной процедурой, а не только с внешним оформлением клиента.
В итоге система должна показывать именно тот результат, который подтверждён: запись в хранилище, получение и обработку на устройстве, прочтение либо скачивание. Такое представление помогает оператору принять правильное решение о дальнейших действиях. Delivered остаётся полезным статусом, но его значение нельзя расширять до человеческого ознакомления без соответствующего отдельного подтверждения.