前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MQTT协议学习总结

MQTT协议学习总结

作者头像
风柏杨4711
发布2021-12-24 14:50:23
1.5K0
发布2021-12-24 14:50:23
举报
文章被收录于专栏:技术小牛技术小牛

本文纯手打,只是本人近期摸索MQTT的总结,不是从其它地方复制的,所以有可能因为认知的偏差或文笔水平导致个别的地方表述不准确,如有问题,欢迎指出。

Mqtt是什么?

跟http类似,也是一个数据传输协议,基于TCP协议开发,它的特点是传输内容精简,而且有QoS(Quality of Service服务质量)机制,更适合物联网等网络环境不稳定,网络带宽小的场景使用;

Mqtt Broker是什么?

Broker是经纪人、中介的意思,其实对我来说,我更愿意称它为Mqtt服务器,因为它是整个传输过程的关键,一直要保持运行的,它负责转发传输的参与方【发布者】与【订阅者】的消息,所有的消息都要经过他转发;

对于Mqtt服务器来说,同一个终端即可以是发布者也可以是订阅者,举个例子:一台物联网空调,它可以作为发布者,把自己的运行状态(如当前是开还是关)用status主题上报给MQTT服务器,其余订阅了status主题的终端就能收到Mqtt服务器的推送,而空调自身也可以是订阅者,例如订阅operation主题,当有终端发布operation主题的内容时,例如内容是open,它就打开空调,收到close就关闭空调,这个具体的业务逻辑可以自己定义和实现,通常与硬件交互时要做PLC编程的。

Mqtt服务器是多种多样的,因为mqtt只是一个传输协议,所有实现了这个协议的都可以做Mqtt服务器,我所了解到的实现方案有Swoole(PHP平台的)、Mosquitto(一个独立的mqtt协议服务组件)、Emqx(一个独立的mqtt协议服务组件)等,还有大量云平台提供Mqtt协议传输服务,如腾讯云、阿里云、华为云等云计算服务商都有,自己搭的优点是成本低,因为可以基于现有服务器装一个组件就可以了,不需要额外的成本,也不用持续付费,直接使用云服务的好处是方便弹性扩展,如果预见不久的将来会达到一个超级大的量级就建议考虑云服务。

怎样搭建Mqtt服务器?

我选择的是Mosquitto组件来搭建Mqtt服务器,用法很简单,我的腾讯云服务器操作系统是Centos7.6,直接用yum install mosquitto命令就可以一健安装好了,安装好后用mosquitto -v即可以在控制台启动mqtt服务,而且会在命令窗口实时输出当前被连接或发布的消息,在调试时很有用,例如可以看到某些ip的连接因为账号密码错误而被拒绝了,哪些连接因超时断开了,包括连接的ClientId都会输出来,是排查问题的利器,如果已经调试完了或希望在后台运行,就用mosquitto -d命令启动,就会转为后台运行了,关于配置的问题不在这里详细展开,可以用whereis mosquitto.conf命令查找这个文件,网上有很多详细介绍配置项的文章。

怎样连接Mqtt服务器?

这个不同的Mqtt服务器的连接方法有细微差异,在这里我主要说一下mosquitto的。 用php连接Mosquitto通常有两种办法,一个是phpMqtt库,我当时下载下来用了,能发布但订阅的消息收不到,后来查了一下说是这种方式不稳定,所以没继续纠结下去;二是安装libmosquitto扩展,这个方式比较稳定,调用起来也更加方便; 而我最终选择的是用python连接,python里有一个paho包,用pip install paho-mqtt 就可以安装了,封装得很好,调用简单,具体用法和注意事项有空再另外写一篇文章讲解。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-12-22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Mqtt是什么?
  • Mqtt Broker是什么?
  • 怎样搭建Mqtt服务器?
  • 怎样连接Mqtt服务器?
相关产品与服务
物联网
腾讯连连是腾讯云物联网全新商业品牌,它涵盖一站式物联网平台 IoT Explorer,连连官方微信小程序和配套的小程序 SDK、插件和开源 App,并整合腾讯云内优势产品能力,如大数据、音视频、AI等。同时,它打通腾讯系 C 端内容资源,如QQ音乐、微信支付、微保、微众银行、医疗健康等生态应用入口。提供覆盖“云-管-边-端”的物联网基础设施,面向“消费物联”和 “产业物联”两大赛道提供全方位的物联网产品和解决方案,助力企业高效实现数字化转型。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档