如何进行mqtt协议中broker的moqutte源码分析
如何进行mqtt协议中broker的moqutte源码分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
mqtt协议的broker有很多,但是java的支持集群的并不多,之前调研过一番,发现moqutte基本满足需求,就想着基于这个在自己做二次开发。
github地址:https://github.com/andsel/moquette
一。将代码倒入idea
找到启动类
启动报错,是因为找不到moquette的配置文件
跟踪源码moquette的配置文件地址是config/moquette.conf
因为咱们是直接启动的Server类里面的main方法,而不是通过assebely打包的jar包,所有这个位置是没有配置文件的,但是moquette支持通过启动参数指定配置文件的位置
那就简单了,把启动需要的配置文件放到本地的某个地方,再通过启动参数指定就行了,在idea里面指定
我是放在/data/moquette目录下
另外idea启动需要的配置文件再,broker模块下的config包里面,或者distribution/src/main/resources
加入之后启动成功
二。配置文件讲解
moqutte的配置文件有五个,下面分别讲解一个有什么作用
1.moquette.conf 主配置文件,moquette启动需要的主要配置都在这里,包括端口号,认证鉴权,存储等,后面讲解源码的时候会详细讲解各个参数的意义
2.hazelcast.xml moquette的集群是通过.hazelcast来实现的,不了解的同学可以自行google一下,这里就不详细讲了
3.password_file.conf 这里配置的是连接是需要的密码
4.acl.conf 这里是各个client对topic的读写权限
5.log4j.properties 日志文件,不多说了
三。客户端选择,本人选择的是eclipse的paha,github地址https://github.com/eclipse/paho.mqtt.java
倒入idea之后找到如下的测试类
在moquette的io.moquette.server.netty.NettyMQTTHandler类上的打断点,重新启动
启动paha的测试类,开始测试
发现moquette的断点进来了,说明client到broker的链路走通了,后面就可以跟踪源码了
之所以在这打断点是因为这是netty与其他应用的接入点,对netty了解的同学应该知道,应用其实只需要实现一个handler,当有数据流的时候,由netty负责回调你的handler。
看完上述内容,你们掌握如何进行mqtt协议中broker的moqutte源码分析的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!