MQTT 接入
接入介绍
针对实时行要求高的智能硬件, 格物云IoT平台定义了一套 MQTT 接入的协议, 该协议实现了对设备进行实时请求和反馈, 也包含的实时数据的收集,和属性的反馈。
接入方案
初始化MQTT客户端
"You device ID", product_key, device_token); client.connect(
- product_key 为产品的 key
- device_token 为每个设备唯一的 token
MQTT 请求
每个请求都有唯一的消息 ID, 通过订阅 /request/+
来获取消息, 并发布 /response/:reqid
来完成一个请求。
首先订阅 /request/+
"/request/+"); client.subscribe(
反馈结果 /response/:reqid
void onMqttMessage(
const char* topic,
uint8_t * payload,
unsigned int length)
{const size_t len = strlen(topic);
char new_topic[len + 2];
// remove "/request/"
char reqid[len - 9];
size_t i;
for (i = 9; i < len; i ++) {
9] = topic[i];
reqid[i -
}
"/response/%s", reqid);
sprintf(new_topic,
"{ \"key\": \"value\" }");
client.publish(topic, }
发布实时数据
通过发布 /telemetry
的消息来汇报实时数据,数据为 JSON 格式
"/telemetry", "{ \"temperature\": 30.5 }"); client.publish(
发布实时属性
通过发布 /attributes
的消息来汇报实时属性,数据为 JSON 格式
"/attributes", "{ \"switch_1_state\": 1 }"); client.publish(