2017-07-27 16 views
0

私はMQTTとPAHO MQTTクライアントライブラリtoo.Iに新しい午前正常に接続することができていますが、私が加入したときに、私が取得することはできませんよmessage.Hereは私のコードですはどのようにアンドロイドMQTTでメッセージを受信する

String topic = "test123"; 
    int qos = 2; 
    try { 
     IMqttToken subToken = client.subscribe(topic, qos); 
     subToken.setActionCallback(new IMqttActionListener() { 
      @Override 
      public void onSuccess(IMqttToken asyncActionToken) { 
       // The message was published 
      } 


      @Override 
      public void onFailure(IMqttToken asyncActionToken, 
            Throwable exception) { 
       // The subscription could not be performed, maybe the user was not 
       // authorized to subscribe on the specified topic e.g. using wildcards 

      } 
     }); 
    } catch (MqttException e) { 
     e.printStackTrace(); 

} 

+0

あなたが投稿したコード、あなたが実際のメッセージの到着を処理するためにコールバックを追加する必要がある唯一のサブスクリプションを要求についてです。 – hardillb

+0

ありがとう@hardillb –

+0

あなたはそれのための解決策を得ましたか、私は同じことをしようとしていますが、それを動作させることができませんでしたか? –

答えて

0
public void subscribeMqttChannel(String channelName) { 
    try { 
     Log.d("tag","mqtt channel name>>>>>>>>" + channelName); 
     Log.d("tag","client.isConnected()>>>>>>>>" + client.isConnected()); 
     if (client.isConnected()) { 
      client.subscribe(channelName, 0); 
      client.setCallback(new MqttCallback() { 
       @Override 
       public void connectionLost(Throwable cause) { 
       } 

       @Override 
       public void messageArrived(String topic, MqttMessage message) throws Exception { 
        Log.d("tag","message>>" + new String(message.getPayload())); 
        Log.d("tag","topic>>" + topic); 
        parseMqttMessage(new String(message.getPayload())); 

       } 

       @Override 
       public void deliveryComplete(IMqttDeliveryToken token) { 

       } 
      }); 
     } 
    } catch (Exception e) { 
     Log.d("tag","Error :" + e); 
    } 
} 
関連する問題