Ответ 1
В MQTT-SN (SN для сети датчиков) есть несколько преимуществ по сравнению с MQTT, особенно для встроенных устройств.
Преимущества
- MQTT-SN поддерживает идентификатор темы вместо имени темы. Первый клиент отправляет запрос на регистрацию с именем темы и идентификатором темы (2 октета) брокеру. После того, как регистрация будет принята, клиент использует идентификатор темы для ссылки на название темы. Это экономит полосу пропускания носителей и память устройства - довольно дорого хранить и отправлять имя темы, например:
home/livingroom/socket2/meter
в памяти для каждого сообщения публикации. - Имя темы для идентификатора темы может быть предварительно сконфигурировано в шлюзе MQTT-SN, так что даже сообщение регистрации может быть пропущено перед публикацией.
- MQTT-SN не требует стека TCP/IP. Он может использоваться по последовательному каналу (предпочтительный путь), где с простым протоколом связи (для различения различных устройств на линии) накладные расходы действительно малы. В качестве альтернативы он может использоваться через UDP, который менее голоден, чем TCP.
Недостатки
- Вам нужен какой-то шлюз, который не что иное, как TCP или UDP-стек, перемещенный на другое устройство. Это также может быть простое устройство (например, Arduino Uno), просто обслуживающее несколько устройств MQTT-SN без выполнения других заданий.
- MQTT-SN не поддерживается.
Если у вас закончились ресурсы или у вас нет Ethernet/Wifi на вашем устройстве, используйте MQTT-SN.