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


16
# MQTT3JavaSwingClient
玉米子禾's avatar
玉米子禾 已提交
17
This is a conversational MQTT client written in Java that USES JavaSwing, SQLite, Paho, Beautyeye, and other technologies.The interface is simple and fresh, with the basic functions of MQTT and the session mode, which allows you to have a conversation under the same theme, and you can set the initial login information such as account number, password, ID and will.