对于有需要使用MQTT功能或产品,调试工具就是必不可用的。
最常见的工具应该就是MQTT.fx吧。毕竟各大云平吧也是以此为参考。
MQTT.fx的工具的好又强在此也不作介绍了。
有时候我们开发或者MQTT,并不会用太多的功能,或者能支持十六进制发送和接收。也曾在网上找过几款MQTT工具,也都没能让自己满意,于是自己就写了一个MQTT客户端工具。现开源出来。主要是最近才学会使用git。以前主要是开发裸机程序,内核等,很少用到git。
https://github.com/xidongliang/mqtt_client/
先看一下这个工具界面,由于工具是使用VS自带的MFC写的,界面风格略丑一些。是使用VS2013版本开发的。
所以调试就在一个页面里。服务器默认填写了自己的测试服务器,搭建了MQTT服务功能。搭建的测试MQTT服务器因为不需要密码验证,就随便填写了。设备ID每次运行工具都会是一个随机数。这样自己就不会使用到相同的ID登记了。
订阅和发布直接就在一个页面里,省的来回切换了。
更主要的是,可以支持HEX格式的数据发送和接收。
有时候自己调试MQTT,可能需要测试订阅的数据包,但是又不想一直看着这个工具,就想到自己写一个功能,可以自动保存到当半目录下。方便自己回看或者数据整理。
什么时间收到什么主题的多少个字节的数据。就一一记录下来了。
当然,如果有发送测试要求的,比如一直发送,多少间隔发送这种测试需求的,也可以直接修改代码,重新编译。
自己有什么需求,就可以自己实现了。MQTT.fx有个脚本功能,这个功能还是比较强大的,也不和MQTT.fx作比较了。
这个工具还支持TLS通信。不过比较简单。
就是在工具的当前目录下,创建一个cer目录,在这个目录下放证书文件即可。
目前该版本是判断了三个文件要存在。如果你只需要两个文件,可能 需要改一下代码。
此外, 该工具附加了一个数据压缩和解压的功能。
因为有一些场合中,为了提高效率,可能会需要将数据压缩之后再发送。
对方收到压缩到的数据再进行解压。
该工具使用的mqtt是libemqtt的库。
如果你也使用过libemqtt,不知道现在的库版本优化过了没有。此前libemqtt里定义的设备ID,用户名和密码,字节数太少。遇到用户名和密码,设备ID稍微长一些,就登录异常了。当然,此工具已经改了这个。
https://github.com/xidongliang/mqtt_client/
笔者主要是在linux 开发比较多,特别是arm linux的嵌入式开发。。最近也慢慢接触github,后续也会陆续将以前写过的一些程序进行开源出来,用于学习和交流。