Уведомления MCData перестали приходить: продление канала и подписки проверяют раздельно
Уведомления MCData сначала работали, а спустя время перестали появляться. Среди возможных причин следует проверить срок действия канала и подписки. В описанной процедуре продление включает два связанных обмена с разными компонентами. Обновление только одной стороны не подтверждает, что вся цепочка получила новый срок.
Срок возвращается в ответе
При создании notification channel клиент указывает желаемую длительность, а notification server возвращает действительный срок использования endpoint сведений. Поэтому локально запрошенное время нельзя автоматически считать окончательно принятым. Программа должна учитывать фактический ответ.
То же различие важно при продлении. Сервер уведомлений возвращает новую длительность, после чего клиент хранилища использует полученное значение для обновления subscription у message store. Этот второй этап связан с первым, но не заменяется им.
Что именно обновляется
Сначала message notification client направляет Update notification channel request и получает ответ. Затем message store client отправляет Update notification subscription request хранилищу. Оно подтверждает новый срок подписки.
В результате один успешный журнал notification server ещё не доказывает актуальность сведений на стороне message store. Обратный вывод тоже неверен: сохранённая подписка сама по себе не подтверждает действительность канала. Нужна согласованная пара результатов.
Проверка истечения
В тестовой конфигурации фиксируют исходную принятую длительность и воспроизводят предусмотренное продление до истечения. Сохраняют оба запроса, оба ответа и фактическое получение контрольного события после обновления. Конкретный момент запуска продления определяется реализацией; универсальный интервал документом здесь не задаётся.
Отдельно проверяют документированное поведение при неуспехе одного этапа. Клиент не должен показывать окончательное «продлено», опираясь только на первый положительный ответ. Способы повторов и восстановления берут из продукта, не предполагая их автоматически.
В отчёте указывают запрошенный и принятый сроки, а также подтверждение подписки. Временные отметки сопоставляют по согласованной шкале, сохраняя исходные значения журналов для разбора.
Такая проверка помогает расследовать прекращение событий без немедленного вывода об отказе сервера или радиосети. Канал и подписка образуют согласованный механизм с собственным временем действия. Приёмка должна подтверждать полный цикл обновления и доставку последующего события, а не только успешную регистрацию однажды созданного адреса уведомлений.
После повторного входа клиента дополнительно проверяют актуальность сохранённых параметров: старый endpoint из прежней сессии нельзя считать действительным только по наличию в локальном кэше.