максимальная скорость обратного вызова Paho MQTT

Я относительно новичок в MQTT, поэтому мой словарный запас может быть неточным. Что, как говорится…

Какова максимальная скорость обратного вызова / потребления токена / публикации при использовании библиотеки paho MQTT c ++?

Моя программа публикует и подписывается на одну и ту же тему (но не на одну и ту же подтему). Он отправляет данные в режиме реального времени (с настройкой 10-100 мс) и в конечном итоге дает сбой из-за повреждения памяти. У меня возникают проблемы, точно определяющие, происходит ли повреждение при публикации сообщения или при получении сообщения, но я понимаю, что в любом случае это должно быть вызвано, потому что в очереди слишком много действий.

Я понимаю, что эта скорость зависит от программы и процессора, но приблизительная оценка того, насколько быстро она должна нормально работать, была бы хорошей.

Вот часть кода, используемая для публикации, а также обратный вызов.

Публикация выполняется на частоте около 10 Гц — Сбои после 70-250 вызовов.

     string topic= "MyTopic/MySubTopic";
string payload = "String payload";
auto pubmsg = mqtt::make_message(topic, payload);
pubmsg->set_qos(2);
try {
m_pClient->publish(pubmsg);
}
catch (mqtt::exception& exception)
{
//In case of exception, send warning but do not publish. We don't care if we miss a few publish.
cout << "Warning: MQTT exception! Error code: " << exception.get_reason_code() << endl << exception.to_string() << endl;
}

Метод CallBack — работает нормально до повреждения памяти

void MyCallBack::message_arrived(mqtt::const_message_ptr msg)
{
string topic = msg->get_topic();
if (topic=="MyTopic/MySubTopic")
{
//Do stuff
}
else
{
//cout << topic << endl;
}

}

редактировать : Я подписался на "MyTopic/OtherSubTopic" скорее, чем "MyTopic/#" и проблема все еще возникает, то есть повреждение памяти происходит на Publish() и не на message_arrived(),

Редактировать 2: Я замедлил цикл публикации (см. Выше) и теперь получаю ошибки mqtt -5 MQTTCLIENT_BAD_UTF8_STRING или иногда -9 MQTTCLIENT_BAD_QOS,

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]