参考连接:https://blog.csdn.net/hyz529900/article/details/123917756
1.MQTT协议简介:
MQTT协议是消息列队传输协议,采用订阅、发布机制,订阅者只接收自己已经订阅的数据,不接收非订阅数据则,既保证了必要的数据的交换,又避免了无效数据造成的储存与处理。
MQTT是基于客户端-服务器的消息发布/订阅传输协议。
2.MQTT协议优点:
1. 以极少代码和有限带宽,为远程连接设备提供实时可靠的消息服务,是一种低开销、低带宽占用的即时通讯协议;
2. 每个消息头都可以缩短为2个字节,这对于HTTP,为每个新请求消息重新建立HTTP连接会产生可观的开销。
3. 包容不稳定的网络,MQTT和MQ可以从诸如断开连接之类的故障中恢复,无需进一步的代码要求。但是,HTTP本身无法实现此目标,并且客户端必须重试编码,这会增加身份问题。
4. 低功耗MQTT专为低功耗目标而设计。 HTTP设计未考虑此因素,这会增加功耗。
5. 在连接数百万个客户端的情况下,在HTTP堆栈中维护数百万个并发连接需要大量工作才能提供支持。尽管这种支持是可行的,但大多数商业产品都经过优化以处理此订单上的持久连接。
IBM提供了IBM MessageSight,这是一种单机架安装服务器,已经过测试,可以通过MQTT处理多达一百万个并发设备。相反,MQ不是为许多同时进行的客户设计的。
6. 客户端平台的差异。 HTTP和MQTT客户端都在许多平台上实现。 MQTT的简单性可帮助您以最少的努力在其他客户端上实施MQTT。
7. 防火墙容错能力。某些公司防火墙将出站连接限制到某些预定义的端口,这些端口通常仅限于HTTP(端口80),HTTPS(端口443)等,
HTTP在这种情况下显然可以工作。 MQTT封装在WebSockets连接中,并显示为HTTP升级请求,因此可以在这种情况下运行。
3.MQTT测试工具介绍:
1.MQTTX(Easy-to-Use MQTT客户端工具):
官方指导手册:https://www.emqx.com/zh/blog/online-mqtt-client
下载链接:https://mqttx.app/zh/web
2.EMQX(MQTT服务器工具):
CSDN指导手册:https://blog.csdn.net/weixin_44462773/article/details/135056325
1.下载EMQX Windows安装包
2.解压安装包,cmd管理员模式进入到安装包下,
3.cmd终端输入:.\emqx.cmd install ----安装EMQX服务
提示"ChangeServiceConfig 成功",则说明服务安装成功。
.\emqx.cmd uninstall ----卸载EMQX服务
4.cmd终端输入:.\emqx.cmd console ---- 启动服务
提示"EMQX 版本号 is running now!",则说明服务启动成功。
5.浏览器输入:"localhost:18083",用户名:"admin",密码:"public"。
6.打开MQTTX,配置客户端信息:
(1)名称随便输入,我这里输入的是test
(2)Client ID默认即可
(3)服务器地址为刚才创建的MQTT本地服务器,因为客户端在同一台电脑上,所以地址为127.0.0.1
(4)端口号默认1883
(5)然后单击右上角的连接按钮
左侧连接列表中显示为绿色,说明连接成功
7.在MQTT控制台,单击监控菜单下的客户端,可以看到客户端已经连接成功。
7.1再打开一个MQTT客户端程序,同样的配置再配置1次,两个客户端即可通信。
(EMQX安装目录下有个etc目录,其下有文件emqx.conf,在这里可以修改MQTT代理的地址,因为默认是127.0.0.1,这样虚拟机无法连接电脑的代理,
如果修改ip,就可以在虚拟机连接mqtt搭建的代理了。)

8.EMQX常用命令
.\emqx.cmd start :启动服务和 Erlang 节点
.\emqx.cmd stop :停止服务和 Erlang 节点
.\emqx.cmd restart :运行停止命令和启动命令
.\emqx.cmd ping : 检查节点是否正在运行
.\emqx.cmd ctl :运行管理命令
.\emqx.cmd console :在Windows shell 中启动 Erlang 版本
.\emqx.cmd attach :连接到正在运行的节点并打开交互式控制台
.\emqx.cmd remote_console :与附加相同
.\emqx.cmd list : 显示已安装的 Erlang 服务的列表
.\emqx.cmd usage :显示可用命令
浙公网安备 33010602011771号