1. 程式人生 > >【原創】MQTT服務端搭建-最快方式驗證自己開發的客戶端

【原創】MQTT服務端搭建-最快方式驗證自己開發的客戶端

文章首發於同名微信公眾號:DigCore

歡迎關注同名微信公眾號:DigCore,及時獲取最新技術博文。

在上一篇文章《【原創】MQTT客戶端搭建-最清晰的MQTT協議架構》中提到了MQTT.fx工具作為客戶端使用時,使用了該工具官方提供的伺服器m2m.eclipse.org: 1883,現在準備在本地主機搭建一個MQTT伺服器。

在GitHub網站上MQTT專案裡,也有很多關於伺服器的介紹,各類伺服器平臺列表:

https://github.com/mqtt/mqtt.github.io/wiki/brokers

關於MQTT伺服器的搭建已經有很多人蔘與進來了,不過各個伺服器未必安裝的都如此順利,總結近期網上搜尋到的資料:

MQTTRoute,本站驗證結果:有30天試用期。

MQTTnet,使用者在部落格發表驗證結果:MQTTnet在VS2015打不開且客戶端示例不可用,屬於C++源專案。

該使用者部落格地址:

https://www.cnblogs.com/zeroes/p/mqttnet.html

Mosquitto,本站驗證結果:不可下載win7-64安裝包。

使用者在部落格發表驗證結果:Win10 64位系統,安裝報錯或缺少dll檔案,不能使用

該使用者部落格地址:

https://blog.csdn.net/yannanxiu/article/details/52703946

對比以上這些別人的經驗後,最後選擇安裝Apache Apollo。

軟體下載

伺服器下載地址:

http://activemq.apache.org/apollo/download.html

軟體安裝與配置

下載了軟體包後解壓到要放置的目錄(注:不允許有中文),啟動CMD命令列工具。

CMD命令列工具下切換到目錄

.. \apache-apollo-1.7.1-windows-distro\apache-apollo-1.7.1\bin

下,執行apollocreate digcore指令,如下圖:

出現報錯資訊:

Warning: JAVA_HOME environmentvariable is not set.

Error: missing `server' JVM at`C:\Program Files (x86)\Java\jre1.8.0_161\bin

ver\jvm.dll'.

Please install or use the JRE or JDK that contains these missingcomponents.

這說明電腦還未配置相關的環境,需要安裝JDK,下載地址:

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

1.下載並安裝後,配置JDK到系統環境變數

2.新建系統變數JAVA_HOME,設定變數值C:\Program Files\Java\jdk1.8.0_181

3.新建PATH(加入列表已存在直接編輯),新增變數值

%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin,注意新增變數值時候不要刪除原本的資訊,用分號;隔開

4.新建CLASSPATH,設定變數值

.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

5.在CMD命令列輸入java –version驗證java環境的正確配置。

JDK環境引數配置完成。

建立伺服器並驗證

建立一個MQTT代理伺服器,命令列切換到bin目錄下後執行apollocreate digcore

成功建立一個MQTT代理伺服器後

切換目錄到新建立的MQTT代理伺服器資料夾下的bin目錄:..\apache-apollo-1.7.1\bin\digcore\bin

執行指令apollo-broker.cmd run 啟動伺服器

命令列出現了代理伺服器的啟動資訊,開啟瀏覽器,輸入命令列中顯示的IP(一般自己電腦本機)和埠號,即可訪問

預設配置:使用者名稱admin,密碼password

使用MQTT.fx客戶端嘗試連線伺服器

在MQTT.fx中填寫伺服器資訊,這裡需要注意伺服器接受的連線埠號,此案例中TCP連線時支援的是61613埠。

MQTT.fx客戶端連線成功後,伺服器控制檯的Connectors選項卡內有新的連線裝置接入資訊:

再開啟一個MQTT.fx客戶端,設定第二個MQTT.fx客戶端時,需要留意把ClientID設定成不同於上一個客戶端即可。

一起連入伺服器後的效果:

以上完成了MQTT伺服器在本地主機的搭建過程。

作為應用開發者來說,側重點如果是在客戶端的設計開發,則對伺服器的選擇就要考慮便捷性和可靠性。

更多技術乾貨分享,敬請關注微信公眾號:DigCore

或者掃碼關注公眾號