mosquitto_publish в асинхронном режиме

Я использую библиотеку mosquitto для интеграции протокола MQTT в мои проекты C ++ (Visual Studio 13).

Мой опыт работы с библиотекой заключается в том, что во многих случаях предпочтительным является асинхронный режим. Это означает, что я использую mosquitto_connect_async для инициализации соединения, а также mosquitto_loop_start а также mosquitto_loop_stop для общего начала и окончания цикла комаров.

Эта настройка дает мне преимущество в том, что все ресурсоемкие операции выполняются в отдельных потоках, в то время как основной поток не блокируется из-за выполнения этих операций (например, получение сообщений, вызовы обратного вызова и т. Д.).

При отладке приложения можно подтвердить асинхронный режим при установке точки останова в функции обратного вызова, которая передается mosquitto_message_callback_set, Эта функция вызывается внутри потока выполнения mosquitto, а НЕ в основном потоке, всякий раз, когда новое сообщение принимается через MQTT. Стек вызовов также подтверждает это в моем сценарии.

Мой вопрос сейчас, что происходит в случае публикации сообщения брокеру MQTT? Я настроил свою систему так же, как в случае получения. Все функции от комаров запускаются в асинхронном режиме. Но что именно происходит, когда сейчас звонит mosquitto_publish? Вызывается ли эта функция в текущем потоке выполнения или содержимое сообщения пересылается асинхронным потокам москитов, которые затем, в свою очередь, отправляют сообщение посреднику?

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

Я ценю некоторую помощь.

Заранее спасибо!

0

Решение

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

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

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

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