作者:手机用户2502876103 | 来源:互联网 | 2023-06-01 10:23
MQTT协议学习:2、MQTT中间件搭建及现成MQTT中间件服务
文章目录 MQTT协议学习:2、MQTT中间件搭建及现成MQTT中间件服务 1. MQTT协议再解读 2. RabbitMQ 3. 物联网平台
1. MQTT协议再解读 当我们对MQTT协议有概念性的了解后,我们知道要进行MQTT协议的使用,我们需要搭建MQTT中间件作为MQTT客户端发布/订阅消息的中间处理服务,可以简单理解为一个媒介,客户端可以发布topic消息到中间件,也可以从中间件订阅需要的topic消息,这样子对于单片机等客户端设备就可以将传感器数据发送到中间件,然后手机、展示平台等客户端就可以从中间件订阅需要的数据,中间件根据订阅的需求将收到的发布消息转给需要数据的客户端。如果还理解不了的话,这样这样思考:中间件就像房产中介,发布消息的客户端就相当于卖房的,订阅消息的客户端就相当于有买房需求的,中间件拿到发布者发布的消息提供给有获取该信息的需求的订阅者就相当于房产中介拿到卖房者的房产信息提供给有买房需求的客户。
2. RabbitMQ 我们这里在本地搭建RabbitMQ作为MQTT中间件来进行测试:https://github.com/rabbitmq/rabbitmq-server
实际上还有很多MQTT中间件,我们在最开始学习MQTT协议时有过说明,RabbitMQ目前使用的比较广泛,资料等都比较全面,所以以此为例。
(1). 简介 RabbitMQ是一套开源(MPL)的消息队列服务软件,是由 LShift 提供的一个 Advanced Message Queuing Protocol (AMQP) 的开源实现,由以高性能、健壮以及可伸缩性出名的 Erlang 写成。
RabbitMQ服务支持下列操作系统:
Linux Windows, NT 到 10 Windows Server 2003 到 2016 macOS Solaris FreeBSD TRU64 VxWorks
RabbitMQ支持下列编程语言:
Python Java Ruby PHP C# Javascript Go Elixir Objective-C Swift
(2). 安装 官网安装相关文档,可以通过编译源码方式也可以通过系统包安装:
https://rabbitmq.com/download.html
Debian系列安装说明:
https://rabbitmq.com/install-debian.html
Ubuntu16.04快速安装及启动RabbitMQ及MQTT-server:
//1. 安装erlangsudo apt-get install erlang //2. 安装RabbitMQsudo apt-get install rabbitmq-server //3. 启动/停止/重启服务service rabbitmq-server startservice rabbitmq-server stopservice rabbitmq-server restart //4. 启动mqtt服务sudo rabbitmq-plugins enable rabbitmq_mqtt
(3). 使用 和一般的数据库安装操作类似,安装后需要设置用户名密码等等用于后续远程连接控制。(这里设置用户名admin,用户密码:admin*1993,权限和读写都全开)
//1. 启动web控制台sudo rabbitmq-plugins enable rabbitmq_management //2. 添加用户密码(默认的guest/gueset记得删掉)sudo rabbitmqctl add_user admin admin*1993 //3. 添加权限sudo rabbitmqctl set_user_tags admin administrator //4. 添加读写权限sudo rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
访问ip:15672可进入web控制台:
此外,RabbitMQ介绍了一些客户端库和开发人员工具,我们可以在这里结合示例学习:https://rabbitmq.com/devtools.html
当我们上面安装好RabbitMQ-server并启动后我们可以根据上面的客户端示例进行开发测试,如果不知道如何开发对应的客户端的话可以看这里: https://rabbitmq.com/getstarted.html
对应的MQTT的客户端关于多种语言的客户端示例都有:
如果还是不太明白的话也没有关系(这里给的实例确实不太方便),我们在接触MQTT中间件以及相关成熟服务后,下一篇我会对MQTT客户端做实例总结。
3. 物联网平台 在不需要或没有条件搭建和维护MQTT中间件但我们又有物联网设备需要进行接入网络提供网络服务使用的话,我们可以使用一些现成的物联网平台,国外的谷歌、亚马逊、思科等以及国内的阿里、百度、腾讯、华为等都有现成的物联网平台,一般都会提供基于MQTT协议的接入方式,根据平台提供的帮助文档,我们只需要在设备上开发MQTT客户端进行协议接入即可,这里就不展开了,只需要搜索对应的物联网平台找到开发者文档按照文档示例进行开发。