1. 程式人生 > 實用技巧 >windows 下搭建 MQTT 服務

windows 下搭建 MQTT 服務

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服務 環境搭建完畢。