Обработка обратной передачи данных в клиенте mqtt - PullRequest
0 голосов
/ 06 июня 2018

На нашем облачном сервере установлен москитный брокер.Наш шлюз отправляет данные с помощью клиента MQTT с сигналом 2G.Мы наблюдаем потерю данных в нескольких сценариях.

Когда шлюз отключен от Интернета, мы помещаем сообщения в шлюз на несколько дней.Когда он снова достигает интернета, он начинает передавать данные в брокер с двумя потоками: один - для сообщений в реальном времени, другой - для сообщений в очереди.Мы получаем ACK обратного вызова для каждого сообщения, но мы теряем некоторые сообщения на стороне сервера.

  1. Как мы гарантируем, что все произведенные сообщения будут обработаны вброкер?

  2. Как мы обрабатываем пакет сообщений в шлюзе? Один из вариантов - задержать отправку каждого сообщения в очереди на несколько миллисекунд(чтобы все они не пытались связаться с брокером сразу.

Мы используем уровень QoS 1 для нашего издателя / подписчика и хотим продолжать использовать уровень QoS 1.

...