В отношении переполнения стека возникает вопрос о реализации взаимодействия запрос / ответ через MQTT. Как отмечается в одном ответе, вы можете сделать это, опубликовав запрос по одной теме и прослушав ответ по другому токену, который был включен в запрос. Это немного неловко, но это работает.
Интересно, поскольку MQTT широко используется в IoT, были ли какие-либо попытки стандартизировать это взаимодействие типа RPC для обеспечения совместимости?
Ответы:
Я не знаю ни о каких таких стандартах.
Как указывалось в ответах на другой вопрос, pub / sub не поддается RPC, но его можно согнуть, чтобы соответствовать.
Одна из сильных сторон MQTT заключается в том, что полезная нагрузка может быть чем угодно, что позволяет разработчику сделать лучший выбор для своего проекта.
источник
Я не уверен, что вам нужно для стандартизированного метода связи RPC через MQTT, но я все же немного искал и нашел несколько моментов, которые вам нужно донести.
Прежде всего, о стандартном методе. На одном проекте Github rpc описание вида гвоздей это:
Смысл в том, чтобы использовать модель стека (модель OSI является стандартом) и просто использовать MQTT в качестве одного из уровней стека.
Этот проект на json-rpc через mqtt использует стандартизированный или, по крайней мере, хорошо известный протокол через MQTT.
Что касается неловкости, вам не нужно создавать MQTT и RPC поверх него с нуля, а вместо этого использовать одну из связанных библиотек или какую-либо другую, найденную на Github.
Хорошо, для каждого языка не существует готовой основы для Github, но в этом случае соответствие становится критерием планирования и, к сожалению, может повлиять на весь другой проект.
источник
Azure IoT Hub имеет концепцию прямых методов:
Это реализовано через MQTT (AMQP не поддерживается), где
Они завернули это в свой SDK, поэтому разработчикам не нужно беспокоиться о конкретном мониторинге темы. Вы могли бы реализовать аналогичный подход.
Что касается других ответов, pub-sub не поддается RPC, и, насколько я знаю, стандартов нет.
Больше документации здесь .
источник