2015-11-01 95 views
0

我有這個Mqtt ckient應用程序正在工作,發佈方法工作正常,但是我的訂閱方法很難。MQTT - 訂閱方法不起作用

這是訂閱方法,我想點擊一個按鈕,SUBCRIBE到主題:

public void subscribe(MqttClient MC) { 

String topic = jTextField3.getText(); 
int qos = jComboBox1.getSelectedIndex() ; 

String[] topics = {topic}; 

int[] QoS = {qos}; 

if (jLabel3.getText().equals("Connected")) { 

    try { 

    MC.subscribe(topics, QoS); 

      System.out.println(topics +" "+QoS); 
       System.out.println(topic +" "+qos); 
      jButton2.setText("Subscribed"); 
      jTextField4.setText(topics.toString()); 

     } catch (Exception ex) { 
    JOptionPane.showMessageDialog(this, ex.getMessage(), 
    "MQTT Subscription Exception", JOptionPane.ERROR_MESSAGE); 
     } 
    } else { 
    jTextArea1.setText("Not connected"); 
    }  
} 

這是按鈕

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {           
    subscribe(MC); 

}

這個actionPerformed方法是我發表的獲得方法:

public void publishArrived(String topic, byte[] data, int QoS, boolean  retained) { 
    jTextField4.setText(topic); 
    String msgData = new String(data); 
    jTextArea1.setText(new String(data)); 
    } 

有人應該請幫我在這裏。

+0

您應該指定您正在使用的是哪個MQTT客戶端庫。 – knolleary

回答

0

您需要實現回調和消息到達函數。這個函數將處理消息。請參閱以下示例中的paho mqtt消息客戶端Subscribe and Read MQTT Message Using PAHO

+0

import com.ibm.mqtt.IMqttClient; import com.ibm.mqtt.MqttClient; import com.ibm.mqtt.MqttException; import com.ibm.mqtt.MqttPersistence; import com.ibm.mqtt.MqttSimpleCallback; import com.ibm.mqttsample.persistence.MqttFilePersistence; –

+0

我應該切換到帕霍? –