Предположим, что существуют многочисленные слабые датчики (например, устройства уровня Arduino), которые полагаются на BLE в качестве средства связи и что эти устройства подключены к более мощному шлюзу (например, устройства Raspberry pi уровня).
Я хотел бы знать, считается ли MQTT подходящим протоколом для передачи их показаний (короткие, частые пакетные сообщения).
Многие блоги / документы считают MQTT подходящим для «приложений IoT», поскольку он имеет меньший вес по сравнению с HTTP и экономит энергию. Однако, насколько я понимаю, требуется, чтобы соединение оставалось открытым, что не относится к BLE или другим протоколам связи, подходящим для IoT. BLE не поддерживает соединение открытым в течение длительных периодов времени для резервирования энергии. Очевидно, MQTT подходит, когда используется протокол уровня MAC, такой как WiFi. Это почти нарушает обоснование использования MQTT в первую очередь (т. Е. Если устройство вычислимо обрабатывает протокол, такой как WiFi, тогда ему может не понадобиться протокол, такой как MQTT). Видите ли вы недостаток в этой логике?
Есть ли альтернативный протокол прикладного уровня для этой цели? Какова наиболее часто встречающаяся структура сообщений такого типа (например, необработанные двоичные данные, JSON, XML), когда они взаимодействуют со шлюзом и когда они общаются с сервером напрямую?