2017-06-11 17 views
0

IBM BluemixブローカとのMQTT接続を行うため、@knollearyからforkしたライブラリImory pubsubclientライブラリとwifi101モジュール(atwinc1500)でarduino zero(samd21)を使用しています。Arduino Pubsubclient cleansessionflag = falseデバイスがオフラインのときにキューに入れないメッセージ

メッセージを正常に発行して購読することができますが、オフラインのときにデバイスに送信されたコマンドを受信するようにIOTFコマンドをキューに入れる必要があります。ブローカに接続している間に、デバイスがオフラインのときにコマンドをキューに入れている間に、クレンジングフラグが設定されていないことを理解しています。ここで

は私のコードスニペットです:

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

に対応します期待どおりにキューに入れられたコマンド。私は何かに欠けていますか?

答えて

0

QoS 0でサブスクライブされているメッセージは、ブローカがパブリッシュ時に配信しようとするためキューに入れられません。 pubsubクライアントがQoS 1

+0

こんにちはで加入したQoS 0 & 1の試みで購読することができ

、私はQOS 1を使用してみましたが、私は何度も何度もコマンドを得続ける毎回デバイスは、私はコマンドを処理した後でも、オンラインになりますサーバに通知してください。私は、サーバーがIBMのダッシュボードで処理されたコマンドを識別していることがわかりましたが、まだコマンドを取得しています。 – sudheera8

関連する問題