MQTT的Java客户端 - 使用会话模式、Paho、SQLite和Swing美化包beautyeye
这是一个用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客户端
^_^
- 使用eclipse paho在java端实现MQTT消息的收发(客户端与服务端实例)
- java在线聊天项目0.1版本 制作客户端窗体,使用swing(用户界面开发工具包)和awt(抽象窗口工具包)
- java在线聊天项目0.2版本 制作客户端窗体,使用swing(用户界面开发工具包)和awt(抽象窗口工具包) BorderLayout布局与GridLayout布局不同之处 JPanel设置大小
- MQTT学习笔记——树莓派MQTT客户端 使用Mosquitto和paho-python
- Eclipse paho实现的MQTT Java客户端
- Java的Swing编程中使用SwingWorker线程模式及顶层容器
- MQTT学习笔记——树莓派MQTT客户端 使用Mosquitto和paho-python
- Spring客户端对Redis 缓存的使用(Java客户端等Redis3.X RedisCluster模式的支持)
- ZooKeeper之Java客户端API使用—创建会话。
- Java Swing Ribbon(Flamingo)的使用04:按钮模式更改
- MQTT客户端--基于paho实现(Java)
- Java的秘密武器:使用全屏幕模式
- Java Swing中使用双击事件
- 发现java的swing的jframe 应该使用jpanel来布局
- Java的秘密武器:使用全屏幕模式
- 小技巧:Java Swing中使用双击事件
- 怎样使用Java实现Factory设计模式
- 一个JAVA SWING GUI使用到的open source和commercial tools
- 使用SqlServer模式的会话状态管理
- 使用Java的Swing操作进度条高级操作