MQTT消息队列服务介绍和Mosquitto的安装和配置

我第一次用到消息队列是在开发一个计量电表继电器设备时用到的,当时了解到MQTT消息队列主要是解决两个内网客户端之间的消息可靠传送的问题。后来详细了解到MQTT(消息队列遥测传输)是IBM开发的一个即时通讯协议。MQTT是面向M2M和物联网的连接协议。Mosquitto是一款实现了 MQTT v3.1 协议的开源消息代理软件,提供轻量级的,支持发布/订阅的的消息推送模式,使设备对设备之间的短消息通信简单易用,适用于不可靠的连接,连接到中央代理并可以发布或订阅MQTT消息。我总结了下MQTT的大概使用范围;机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。然后MQTT服务三种身份;发布者publish,代理服务,订阅者subscribe 其中消息发布者和订阅者都是客户端且可以是同一客户端。
MQTT传输的消息分为两部分:主题(Topic)可理解为消息类型,负载(payload)可理解为消息内容。还有就是如果你愿意你甚至可以把MQTT当成一个类似QQ消息聊天的一个服务器相当于MQTT类似于XMPP消息聊天服务,只是MQTT是适合物联网设备之间的消息收发。
mosquitto服务默认不保存数据,只是转发
MQTT;发布者,和订阅者不一定需要同时在线。
MQTT;订阅,会话,主题topic


1)消息队列MQTT 能给我们解决什么问题
从百度百科看MQTT 协议主要解决的是机器与机器之间数据通信,有接触过物联网的话,可能有所了解了,当我们所有机器都能在一个网络上面分配的一个地址的话,由于,设备间的性能差异,低到可能就是一个插座和一个极简化的一个电路板例如(ESP8266模块),而你需要这个插座能进行数据通信,例如,控制这个插座的开-闭这类的,就需要一个极其轻量级的协议而MQTT 协议就是为此目的诞生的。这个协议不能消耗大量的资源,因为嵌入式设备的资源都非常有限。上面是对MQTT的一些总结和概述,下面我们一LINUX系统为例子详细为大家介绍下如何在LINUX系统上安装和配置。


2)首先安装服务端
mqtt服务端,默认使用1883端口
在CentOS阿里云上安装
yum install mosquitto mosquitto-devel            //在CentOS上安装,HK阿里云OK
systemctl restart mosquitto                      //默认是任何人都可以访问,生产环境建议配置密码
mosquitto_sub -t nrjs                                  //开一个SSH窗口,其中nrjs是消息主题
mosquitto_pub -t 主题 -i 发布端 -h 主机 -m 你好
mosquitto_pub -t nrjs -m "helloword"   //开另一个SSH窗口,消息中间有空格则消息要用引号括起来
mosquitto_pub -t test1 -h 22.33.71.105 -m"hello word"       //个人电脑上发送测试
mosquitto_sub -t "mytopic" -ujiaozhu -P 12345
mosquitto_pub -m "myIoT" -t"mytopic" -u jiaozhu -P 12345



3)其次客户端安装配置,可以是各种设备例如ESP8266等
apt-get install mosquitto-clients              //一般用ESP8266等设备作为MQTT客户端
mosquito_pub上传
mosquito_sub接收
测试,在树莓派打开两个SSH界面分别输入;
mosquitto_sub -t m -d                                          //接受消息
mosquitto_pub -t m -m "byInfo This isa message"         //上传发送消息

下图是基于ESP8266采用C语言编写的带有MQTT协议采集温度传输到服务器,然后在手机上能观看的物联网温度传感设备。



4)其他;
homeassistant 网页界面(非必要)
pip3 install homeassistant
管理页面访问地址http://ip:8123




总结;随着物联网方面的发展,对MQTT消息服务的使用也越来越多。通过这次典型的简单的服务配置。我们可以了解到消息服务是非常适合在物联网环境下使用的,所以对以后的物联网发展会有重要的意义。


本文由作者自行上传发布,文章仅代表作者个人观点。如需转载,务必声明出处和网址,否则保留相关权利。

网友评论 comments

发表评论

电子邮件地址不会被公开。必填项已用 *标注

暂无评论

牛人技术博客 | AboutUS | 湘ICP备13000282号-8 |
Copyright © 2009 - 2019 NRJS Corporation, All Rights Reserved
添加图标到手机桌面
扫二维码
扫二维码
返回顶部