开发MQTT客户端介绍
前言:本人亦处于开发学习阶段,若有纰漏欢迎指出。项目开发完后会开源至GitHub/Gitee,需要可以关注,每周会进行更新,本次开发主要以个人记录MQTT通讯协议的学习过程和应用过程为主。由于个人本职工作为上位机开发,在后续也会利用该工具继续开发开源物联网系统:有关各类工业设备的数据采集控制、业务逻辑实现,包括但不限于Modbus设备、PLC设备、仪器仪表、机器人等。
内容:完成一个类似MQTTX的个人使用MQTT客户端测试工具,完成对服务器的连接、主题订阅、事件的接收、Josn数据收发、日志记录等功能。以便加深对于MQTT通讯协议的理解,并在后续基于该工具继续开发其他开源物联网系统,会采用用MQTT通讯协议作为传输。
开发环境准备
注:如果只是简单做一个工具,无需要用到MVVM设计模式和Sqlsugar,此处为了后续的易扩展性和易维护性采用MVVM的设计模式和SqlSugar的ORM。
- 开发工具:Visual Studio 2022 Community
- 开发语言:C#
- 开发框架/设计模式:WPF/MVVM(Prism)
- 开发数据库/ORM:Mysql/SqlSugar
- 数据库管理工具:HeidiSql
环境创建过程:
1、创建一个Prism Blank App用于新建项目(此处需要安装扩展,自行百度,否则只能手动创建)。
2、创建完成后工程结构如图。
3、采用HeidiSql作为Mysql数据库的可视化管理工具,自行安装,当然别的可视化工具也可以。
开发引用Nuget
注:此处不包含上述Prism引用及SqlSugar引用,其他引用会在开发过程中会不断进行补充......
- 页面UI引用:HandyControl
- MQTT引用:MQTTNet
- Josn收发引用:Newtonsoft Json
- 日志功能引用:Log4Net
- 数据库功能引用:SqlSugar
Nuget工具包引用过程:
1、打开工具-->选择Nuget包管理器-->选择管理解决方案的Nuget程序包
2、完成HandyControl的安装引用
- 搜索HandyControl,根据图中选择,安装最新版
- 打开App.xmal在其中添加如下代码
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/SkinDefault.xaml"/>
<ResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/Theme.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
- 在界面中添加命名空间:
xmlns:hc="https://handyorg.github.io/handycontrol"
xmlns:hc="https://handyorg.github.io/handycontrol"
3、完成MQTTNet的安装引用
4、完成Newtonsoft Json的安装引用
5、完成Log4Net的安装引用
6、完成SqlSugar的安装引用
7、最终完成效果如下,选择已安装进行查看。