这是一个用Java写的有会话模式的MQTT客户端,用到了JavaSwing、SQLite、Paho、Beautyeye等技术。界面简洁清新,有MQTT的基本功能,有会话模式,可以在同一主题下会话,可以设置账号、密码、ID、遗嘱等登录初始信息。
想参加全国大学生电子设计大赛,队友抱怨用蓝牙调试每次都要连接太麻烦了,所以想用WIFI,于是想到了MQTT协议,由于MQTT客户端还没有我满意的(接触了两个,MQTT.fx、通信猫,MQTT.fx挺好的,但是不怎么懂英文,而且单片机由于内存限制,一般只定义一个主题,都没有会话模式,发主题太麻烦了),于是开始动手,花几天做了一个这个东西。
简单介绍一下,MQTT是用的paho的包,直接到官网下的,支持MQTT3.1.1,MQTT的关键部分(MqttClient类、MqttClientCallback类等)添加了中文注释,可以中英文对比,没有修改官方的代码。MQTT比较小就不裁剪了。这个有5M多(87%)都是SQLite的大小(>_<)。
SQLite的JDBC是3.27.2.1版本,官网打不开是在Bitbucket下载的。用JavaBeans做的(校企合作只学了这个,听说还有更厉害的),数据库相关全在top.luckysmile.mqtt.client.data这个包里,采用静态加载方式加载驱动,初次学Java注释比较详细。
Swing的控件命名都还算满足老师说的规范,像标签是用jlb开头,名字是用英文的,有意义的。用了JackJiang2011的beautyeye皮肤包,挺好看的。Swing的结构应该是比较清晰明了的,主界面一个Jpn,会话,登录,订阅,发布各一个Jpn,所有控件放在后4个Jpn上,会话选项卡单独一个类,一个主jpn,接收和发送各一个jpn在主jpn上。注释比较详细。
初学Java,不懂什么架构,这里简单说下我的结构。分为视图、监听、服务和数据这四个部分,其中,服务有服务管理器。视图驱动,最终回到视图,监听调用服务管理器,由服务管理器统一管理其他服务和数据。服务管理器,和两个视图操作类应该是要单例化的,但时间不够就不改了。自己写的代码全在Client里。
界面截图:
会话模式 连接界面 断开 退出GitHub地址:MQTT客户端
https://github.com/Minuy/MQTT3JavaSwingClient
^_^
网友评论