MQTT實戰:Eclipse Paho + Moquette

https://github.com/eclipse/paho.mqtt.androidhttps://github.com/eclipse/paho.mqtt.java下載項目。

新建AndroidStudio項目命名爲PahoAndroid,將paho.mqtt.android-master項目下的service和sample拷到PahoAndroid。

新建Eclipse mars java項目命名爲PahoJava,將paho.mqtt.java-master子項目org.eclipse.paho.client.mqttv3拷到PahoJava。

 

l  先修改PahoJava:

org.eclipse.paho.client.mqttv3\src\main\java-templates\org\eclipse\paho\client\mqttv3\internal下的ClientComms.java拷到internal包下,target的internal的nsl也要拷到項目的internal下。

然後Export爲pahojava.jar包。(如有問題請用jdk1.7編譯導出)

 

l  修改PahoAndroid:

導入pahojava.jar到libs下。並在project structure中引入。

出現找不到RecyclerView的錯誤,需要在build.gradle的dependencies下添加一句:  compile'com.android.support:recyclerview-v7:25.3.1' 便能解決問題。

配置地址和用戶名密碼在ConnectionModel.java中。

此時便可以在手機上運行android app了。

 

l  Mqtt服務器端:(jdk1.8)

地址:https://github.com/andsel/moquette,下載下來取其中的broker文件下的源代碼來新建項目MoquetteServer,並且需要將config文件夾和pom.xml也放在項目中。

需要下載netty服務器,其實用到的只有一個netty-all-4.1.14.Final.jar文件。

需要導入很多的jar,很多……有些甚至要從github上面下載源代碼然後自己打包成jar包。

在io/moquette/server/Server.java中有Main函數爲啓動此類。

用到的包有:

netty-all-4.1.14.Final.jar

hazelcast-all-3.8.4.jar

commons-code-3.0.0.jar

metrics-core-3.0.0.jar

guava-23.0.jar

Jackson-annotations-2.9.1.jar

jackson-core-2.9.1.jar

jackson-databind-2.9.1.jar

jsp-api.api.jar

servlet-api.jar

slf4j-api-1.7.25.jar

slf4j-jdk14-1.7.25.jar

librato.jar(自己到相應github上下載源代碼然後用jdk1.8打包成jar的)

bugsnag.jar(同上是自己打包的,打包時可不用包含其libs,在最終項目中導入其libs中的jar即可)


 

連成功了,直接將MoquetteServer中的Server.java啓動爲Java Application即可在控制檯看到信息,然後配置好的地址的PahoAndroid項目運行在手機上,然後新建Connection,便可以在服務器控制檯看到相關信息了(電腦和手機在一個局域網,不懂的自行百度吧)。

雖然可以用了,但是怎麼用,用到具體的項目中進行修改,還是需要看源代碼的,把整個代碼流程理解透徹。並且最近下載了一本《代碼閱讀方法與實踐》(與《代碼閱讀》譯者不同,出版年份不同,但是網上沒有《代碼閱讀》的資源),準備好好拜讀一下,提升閱讀代碼的能力,因爲閱讀代碼的能力對於看開源代碼或者別人的代碼以及學習時理解代碼太太太重要了!!!


未完待續……


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章