2015-11-01 96 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

我应该切换到帕霍? –