【发布时间】:2017-06-11 15:18:07
【问题描述】:
我正在使用 arduino zero(samd21) 和 wifi101 模块 (atwinc1500) 以及从 @knolleary 派生的库 Imory pubsubclient 库,以与 IBM Bluemix 代理建立 MQTT 连接。
我能够成功发布和订阅消息,但是,我需要将 IOTF 命令排队,以便在设备离线时接收发送到我的设备的命令。我知道在连接到代理时应该取消设置 cleansession 标志,以便在设备离线时对命令进行排队。
这是我的代码 sn-p:
while(!Org_Client.connected())
{
SerialUSB.println("Connecting to MQTT server");
if (Org_Client.connect(MQTT::Connect(Org_ClientID).unset_clean_session().set_auth(authMethod,token)))
{
SerialUSB.println("Connected to MQTT server");
Org_Client.subscribe(MQTT::Subscribe().add_topic(subtopic1,0));
Org_Client.subscribe(MQTT::Subscribe().add_topic(subtopic2,0));
Org_Client.subscribe(MQTT::Subscribe().add_topic(subtopic3,0));
Org_Client.subscribe(MQTT::Subscribe().add_topic(subtopic4,0));
}
}
//subtopic1,subtopic2,subtopic3,subtopic4是我的订阅主题,0对应t QOS 0。
但是,我的设备没有按预期接收排队的命令。我错过了什么吗?
【问题讨论】:
标签: arduino message-queue mqtt