2016-08-06 14 views
0

Eclipse Pahoを使用してMQTTを使用してセンサー・データを読み取ろうとしています。私は正常に接続されていますが、データを読み取る必要があります。 私の今までのコード:Eclipse PahoでMQTTからデータを読み取る方法は?

public static void main(String[] args) { 
    MqttClient client; 
    MqttMessage msg; 
    MemoryPersistence persistence; 
    MqttConnectOptions conn; 
    IMqttMessageListener listen; 

    String broker = "tcp://url:1883"; 
    String str = "password"; 
    char[] accessKey = str.toCharArray(); 
    String appEUI = "userID"; 


    try { 
     persistence = new MemoryPersistence(); 
     client = new MqttClient(broker, appEUI, persistence); 
     conn = new MqttConnectOptions(); 
     conn.setCleanSession(true); 
     conn.setPassword(accessKey); 
     conn.setUserName(appEUI); 
     client.connect(conn); 
     //client.connect(); 

     if(client.isConnected()) { 
      System.out.println("Connected.."); 
     }else { 
      System.out.println("Unable to connect"); 
      System.exit(0); 
     } 

     msg = new MqttMessage(); 
     byte[] data = msg.getPayload(); 
     System.out.println(d); 



    }catch(Exception x) { 
     x.printStackTrace(); 
    } 

} 

私はデータを読み取ることができません。誰かガイドできますか?

答えて

1

MQTTブローカーからデータを読み取らないで、トピックにサブスクライブし、そのメッセージに新しいメッセージが発行されたときにデータを送信します。

ですから、その後はあなたが興味のあるトピックブローカーを伝える必要がありMqttCallbackインタフェースのインスタンスを実装し、接続

client.setCallback(new MqttCallback() { 
    pubic void connectionLost(Throwable cause) { 
    } 

    public void messageArrived(String topic, 
       MqttMessage message) 
       throws Exception { 
     System.out.println(message.toString()); 
    } 

    public void deliveryComplete(IMqttDeliveryToken token) { 
    } 
}); 

でそれを設定する必要があります。

client.subscribe("topic/foo") 
+0

場合、私は、私のクライアントとしてraspberrypiを持っていますが、pahoライブラリを使用してそのデータを読み取ることはできますか? –

関連する問題