0
我使用arduino zero(samd21)将wifi101模块(atwinc1500)与Imory pubsubclient库从@knolleary分叉,以便与IBM Bluemix broker进行MQTT连接。Arduino Pubsubclient cleansessionflag = false当设备处于脱机状态时不排队消息
我能够成功发布和订阅邮件,但是,我需要将IOTF命令排队以接收在设备脱机时发送给我的设备的命令。我了解,在设备处于离线状态时,如果连接到中介人队列命令,则应清除cleansession标记。
这是我的代码片断:
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对应吨QOS 0
然而,我的设备没有接收到按预期排队的命令。我错过了什么?
嗨,我尝试使用QOS 1,但我一直一次又一次,每次的设备联机即使我处理命令得到命令并发送通知服务器。我可以看到服务器识别命令已在IBM仪表板处理过,但我仍然得到这些命令,我确定相同的命令正在重复执行,因为请求ID与命令相同。 – sudheera8