1.首先搭建起MQTT服務
1.1安裝mosquitto,mosquitto是開源的MQTT代理服務器,它的Windows安裝包地址:https://mosquitto.org/download/
1.2 安裝、配置ActiveMQ
ActiveMQ 下載地址:http://activemq.apache.org/components/classic/download/
ActiveMQ操作手冊:http://activemq.apache.org/getting-started#StartingActiveMQStartingActiveMQ
把下載的壓縮包解壓以后,放到自己可以方便找到的目錄。在這個目錄下,進入解壓文件包的bin目錄,在這個目錄下打開cmd窗口,輸入activemq start ,按回車MQTT服務啟動成功如下
打開ActiveMQ的查看頁面: http://127.0.0.1:8161/admin/,輸入用戶名:admin 密碼 :admin,進入查看頁面,如下圖。
2.用java 實現一個MQTT客戶端,並發布消息 ,測試MQTT服務端
2.1 下載mqtt的jar包
地址如下:https://repo.eclipse.org/content/repositories/paho-releases/org/eclipse/paho/
2.2 引用官方示例測試,官方示例代碼如下:
package com.mqtttest; import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken; import org.eclipse.paho.client.mqttv3.MqttCallback; import org.eclipse.paho.client.mqttv3.MqttClient; import org.eclipse.paho.client.mqttv3.MqttConnectOptions; import org.eclipse.paho.client.mqttv3.MqttDeliveryToken; import org.eclipse.paho.client.mqttv3.MqttException; import org.eclipse.paho.client.mqttv3.MqttMessage; import org.eclipse.paho.client.mqttv3.MqttPersistenceException; import org.eclipse.paho.client.mqttv3.MqttTopic; import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence; public class Main { public static void main(String[] args) { String topic = "MQTT Examples"; String content = "Message from MqttPublishSample"; int qos = 2; String broker = "tcp://127.0.0.1:1883"; String clientId = "JavaSample"; MemoryPersistence persistence = new MemoryPersistence(); try { MqttClient sampleClient = new MqttClient(broker, clientId, persistence); MqttConnectOptions connOpts = new MqttConnectOptions(); connOpts.setCleanSession(true); System.out.println("Connecting to broker: "+broker); sampleClient.connect(connOpts); System.out.println("Connected"); System.out.println("Publishing message: "+content); MqttMessage message = new MqttMessage(content.getBytes()); message.setQos(qos); sampleClient.publish(topic, message); System.out.println("Message published"); sampleClient.disconnect(); System.out.println("Disconnected"); System.exit(0); } catch(MqttException me) { System.out.println("reason "+me.getReasonCode()); System.out.println("msg "+me.getMessage()); System.out.println("loc "+me.getLocalizedMessage()); System.out.println("cause "+me.getCause()); System.out.println("excep "+me); me.printStackTrace(); } } }
運行完畢上面的程序,進入http://localhost:8161/admin/topics.jsp,點擊Topics,就可以看到我們發布的消息了,如下圖
至此,windows下的 MQTT服務 環境搭建完畢。