ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

MQTT测试环境搭建

2021-11-04 23:01:24  阅读:232  来源: 互联网

标签:sub 测试程序 服务端 MQTT mosquitto pub 测试环境 搭建


之前做MQTT项目,现把测试环境搭建记录一下。

物联网设备很多会用到MQTT协议,我们的项目也用到了,需要把消息报警数据通过MQTT协议上传到第三方平台。设备端只要用到publish协议即可,但是,设备端程序开发完成后,需要自行测试通过后,才能与第三方平台对接,这样提高对接效率。

MQTT服务端采用mosquitto,先到mosquitto官方网站下载安装程序和源码。

Eclipse Mosquitto

最初,我们选择Windows安装包,安装完成后,在安装目录双击mosquitto.exe,把服务端运行起来,默认端口1883。安装目录还有另外两个测试程序,mosquitto_pub和mosquitto_sub,这两个程序需要通过命令行来运行。然后,通过mosquitto_pub程序发布消息,mosquitto_sub订阅消息,mosquitto_sub能收到消息,看起来一切正常。

但是,mosquitto_pub 加参数-P 密码运行的时候,提示测试程序不支持密码模块,mosquitto_sub也有同样的问题,我们对接第三方是要密码认证的,由于下载的是安装包程序,没有办法,通过源码在Linux平台上编译吧。

把源码解压,到解压目录,直接make,过一会说找不到cjson头文件,怎么需要cjson呢,有点奇怪,然后在代码根目录找到README-compiling.md,里面说cjson是可选的,然后找到config.mk,搜索CJSON的行,把yes改为no,再make,编译OK。测试程序生成在client目录下。

编译出来的测试程序支持密码参数的,通过Linux的mosquitto_pub程序,发布到Windows的服务端,死活连不上,但是可以ping通,有点奇怪。然后,直接telnet 到Windows的1883端口,也不行,那说明不是测试程序问题。Windows本地可以连,说明是listen的时候绑定的回环地址。查看,资源管理器,果然是bind了回环地址。

修改安装目录下的配置文件mosquitto.conf,搜索listener,然后增加一句 listener  端口  IP,重新运行mosquitto,通过Linux测试程序,可以连接上了。但是,加了-P参数,提示报错,拒绝连接。网上搜了一下,需要配置用户和密码。

找到安装目录下mosquitto_passwd.exe,通过mosquitto_passwd.exe生成密码文件,publish和sub都一起生成了。注意,下面那行不要带-c参数,否则会重新生成pwfile文件,分别输密码就可以了。

mosquitto_passwd.exe  -c  pwfile   pub_user

mosquitto_passwd.exe   pwfile   sub_user

密码文件生成后,打开配置文件,找到password_file这行, 增加一行 password_file  pwfile,保存,重新运行服务端程序。Linux 测试程序pub和sub都可以发布和订阅消息了,测试环境搭建完成。板子就可以与服务端调试了。

标签:sub,测试程序,服务端,MQTT,mosquitto,pub,测试环境,搭建
来源: https://blog.csdn.net/wind199/article/details/121152757

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有