Подписчик MQTT не получает сообщения в очереди, когда издатель использует QoS 0?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Подписчик MQTT не получает сообщения в очереди, когда издатель использует QoS 0?

Сообщение Anonymous »

Я читал документацию MQTT и, насколько я понимаю, существует два типа уровней качества обслуживания (QoS):
QoS издателя: определяет гарантию доставки между издателем и брокером.
QoS подписчика: определяет гарантию доставки между брокером и подписчиком.
Я тестирую это с помощью Приложение Qt, в котором я запускаю два экземпляра — один в качестве издателя и один в качестве подписчика. Оба клиента используют cleanSession = false.
Вот мои тестовые сценарии:
QoS издателя = 2, QoS подписчика = 2
Я отключаю подписчика.
Публикую сообщение.
Подключите подписчика повторно.
✅ подписчик получает сообщение в очереди, как ожидалось.
QoS издателя = 0, QoS подписчика = 2
Я отключаю подписчика.
Опубликую несколько сообщений.
Подключите подписчика повторно.
❌ Подписчик не получает ни одного из сообщения.
Я ожидал, что подписчик по-прежнему будет получать сообщения, поскольку он подписался с QoS 2.
Я неправильно понимаю, как работает MQTT QoS?
Вот основная часть моего кода:

Код: Выделить всё

void MainWindow::on_subscribeBtn_clicked()
{
QString topic = ui->topicLineEdit->text().trimmed();

if (topic.isEmpty()) {
qDebug() qos2Radio);

// Subscribe to new topic
auto sub = client->subscribe(topic, qos);
if (!sub) {
qDebug() text();

if (topic.isEmpty()) {
qDebug() qos1RadioPub, ui->qos2RadioPub);

client->publish(topic, message.toUtf8(), pubQos, false);
qDebug() 

Подробнее здесь: [url]https://stackoverflow.com/questions/79797570/mqtt-subscriber-doesn-t-receive-queued-messages-when-publisher-uses-qos-0[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»