MQTT实战:Eclipse Paho + Moquette

https://github.com/eclipse/paho.mqtt.android和https://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,便可以在服务器控制台看到相关信息了(电脑和手机在一个局域网,不懂的自行百度吧)。

虽然可以用了,但是怎么用,用到具体的项目中进行修改,还是需要看源代码的,把整个代码流程理解透彻。并且最近下载了一本《代码阅读方法与实践》(与《代码阅读》译者不同,出版年份不同,但是网上没有《代码阅读》的资源),准备好好拜读一下,提升阅读代码的能力,因为阅读代码的能力对于看开源代码或者别人的代码以及学习时理解代码太太太重要了!!!


未完待续……


你可能感兴趣的:(Android推送)