Комментарии 33
Поддержка QoS — возможность управлять приоритетом сообщений и гарантировать доставку сообщения адресату.
Прошу не вводить в заблуждение:
QoS — и гарантировать доставку сообщения адресату.— не гарантирует доставку сообщения. Он лишь расставляет приоритеты. Крайне полезная штука, при мало скоростном соединении.
Линк почитать про QoS
Согласен с автором QoS может делать выше указанное. Иной ресурс с описанием
/home/something — в данном случае home находится на втором уровне.
Правильнее писать
Home/something
Поддерживается во всяких штуках за $1 типа ESP8266 (точнее в ОС для них).
Расчёт на ненадёжное TCP — то есть, то нет, то косячит.
А с учётом ещё одной «фишки» — will-сообщений (типа «завещание на случай нежданной смерти»), вообще очень надёжная и предсказуемая система может получиться.
Что касается ресурсоёмкости, то впринципе самое ресурсоёмкое — шифрование трафика. Остальное для простых устройств не так уж и сложно и ресурсоёмко.
Т.е., если «открытым текстом», то вполне под силу и совсем лёгким железкам.
Что TCP работает через пень-колоду? Редко бывает? По редиоканалу? GSM?
А серверу мало понимать. Понимать должны устройства и программы, работающие совместно с устройством с ненадёжноф связью. И "умершее" устройство должно уметь гарантированно сообщить о своей смерти. Протокол эту проблему решает.
На 8 битной железке с 16кБ ОЗУ и 32 ПЗУ даже интерпретатор бейсика когда-то неплохо работал.
И кто Вас заставляет Json пихать? Хоть в бинарном виде сообщения отдавайте. Протокол и это позволяет. А хочется с 8 битной железкой работать, так и работайте на соответствующем уровне.
Странно ставить в вину протоколу, что 8 битная железка не умеет h264 на лету кодировать. :)
И да. этот протокол не для того, чтобы "в жёстком реальном времени глолову с ногами соединять", а в основном для того, чтобы обеспечить обмен данными между функционально самостоятельными устройствами.
Пример добавления данного протокола к программируемому промышленному реле https://youtu.be/Ogp0U0pHQqA
Все же у Mqtt и MODBUS разные ниши. Modbus rtu/ascii можно использовать в реальном времени, а mqtt, из-за завязки на tcp/ip уже нельзя.
Впринципе, можно использовать и для обмена сообщениями между людьми. :)
в то время как в Modbus/TCP подключение инициирует сервер (master)
Позвольте уточнить. В Modbus/TCP действительно master инициирует соединение, но master это клиент. Сервер это slave. Если за NAT клиенты, то проброс портов не нужен.
Как общаются машины — протокол MQTT