MQTT协议学习:2、MQTT中间件搭建及现成MQTT中间件服务


文章目录

  • MQTT协议学习:2、MQTT中间件搭建及现成MQTT中间件服务
    • 1. MQTT协议再解读
    • 2. RabbitMQ
      • (1). 简介
      • (2). 安装
      • (3). 使用
    • 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. 安装erlang
sudo apt-get install erlang
//2. 安装RabbitMQ
sudo apt-get install rabbitmq-server
//3. 启动/停止/重启服务
service rabbitmq-server start
service rabbitmq-server stop
service 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客户端进行协议接入即可,这里就不展开了,只需要搜索对应的物联网平台找到开发者文档按照文档示例进行开发。

MQTT协议学习:2、MQTT中间件搭建及现成MQTT中间件服务相关推荐

  1. MQTT协议学习:3、MQTT客户端实例

    MQTT协议学习:3.MQTT客户端实例 文章目录 MQTT协议学习:3.MQTT客户端实例 1. 前言 2. Paho MQTT (1). Go客户端实例 (2). Python客户端实例 (3). ...

  2. 【MQTT】MQTT协议学习

    文章目录 MQTT协议 简述 特点 MQTT消息的QoS(服务质量) MQTT支持三种QoS等级: 协议实现方式 MQTT协议数据包(控制报文)结构 MQTT固定头 MQTT数据包类型 标识位 剩余长 ...

  3. MQTT协议学习总结

    目录 1.MQTT协议介绍 1.1 MQTT简介 1.2 MQTT协议设计规范 1.3 MQTT协议主要特性 1.4 MQTT协议应用领域 2.MQTT协议原理 2.1 MQTT协议实现方式 2.2 ...

  4. 物联网之MQTT协议详解基础篇(一)—— MQTT介绍

    MQTT: The Standard for IoT Messaging 开场白 大概是这么个背景 比如小米智能家居目前是这么个流程: 物联网设备通过家里的wifi连接到外网服务器 在外网通过米家ap ...

  5. 推送消息mqtt协议服务器域名云喇,推送消息mqtt协议服务器域名云喇

    推送消息mqtt协议服务器域名云喇 内容精选 换一换 上传证书相关问题,请根据您的情况选择具体解决方法:目前SSL证书管理平台只支持上传PEM格式的证书.其他格式的证书需要转化成PEM格式后才能上传, ...

  6. MQTT协议学习(3)——connect控制报文

    建立连接后客户端发送给服务器的第一个报文必须是connect报文 在一个网络连接上,客户端只能发送一次CONNECT报文.服务端必须将客户端发送的第二个CONNECT报文当作协议违规处理并断开客户端的 ...

  7. MQTT学习笔记——MQTT协议体验 Mosquitto安装和使用

    原版地址:http://blog.csdn.net/xukai871105/article/details/39252653 0 前言 MQTT是IBM开发的一个即时通讯协议.MQTT是面向M2M和物 ...

  8. MQTT 协议快速体验

    全球物联网正在高速发展,专门针对低带宽和不稳定网络环境的物联网应用设计的 MQTT 协议也因此得到广泛应用. MQTT 是一种基于发布/订阅模式轻量级消息传输协议,具有简单易实现.支持 QoS.报文小 ...

  9. MQTT协议图解,一文看懂MQTT协议数据包(真实报文数据解析解释)

    文章目录 一.MQTT协议 二.协议详解 2.1 协议结构 2.1.1 固定报头 2.1.2 可变报头 2.1.3 有效载荷 三.具体协议报文详解 3.1 连接服务器报文详解 3.2 发布消息报文详解 ...

最新文章

  1. 多所高校官宣硕士扩招!最大扩招增幅近60%
  2. CMake 条件判断
  3. 线性代数笔记:Hadamard积
  4. Git复习(三)之分支管理、分支策略
  5. java.util 找不到_java.util.MissingResourceException:找不到基本名...
  6. Python AdaBoost提升算法
  7. 信息发布服务器hp3000,HPCS-3000型DCS系统维护说明….doc
  8. Android获取通讯录速度,在android中获取联系人非常慢
  9. Java 持久化操作之 --io流与序列化
  10. ajax 购物车 c#,c#购物车功能实现及收藏功能实现
  11. MySQL取小数点后两位及百分比
  12. Code[VS]1273 风战
  13. [daily][device] linux挂载iphone
  14. 根据高德API获取poi数据
  15. python 常微分方程_常微分方程数值解法——python实现
  16. 倒闭潮之后 快消B2B要如何做才能实现盈利
  17. 宏病毒实验讲解(含共享文件夹建立)
  18. html的视频字幕制作步骤,视频字幕制作软件如何制作视频滚动字幕|滚动字幕视频制作...
  19. linaro交叉编译linux内核,Ubuntu14.04(64位)下gcc-linaro-arm-linux-gnueabihf交叉编译环境搭建...
  20. LINUX未来的发展前景

热门文章

  1. 基于超分辨率的遥感图像小目标检测
  2. 数字孪生技术架构概述
  3. ie不能加载flash html,IE浏览器无法显示Flash怎么解决
  4. 打印冻结窗格怎么保证每页都有_《excel如何打印标题行》 EXCEL 如何让冻结的窗口 在打印的每页上面显示...
  5. 计算机行业找工作的高峰期,2018年冬季求职期竞争最激烈的十大行业、求职城市竞争指数排行版、人才需求量最多的十大城市、全国平均薪酬比较【图】...
  6. 微软在Origami UMPC上运行Linux系统(转)
  7. 糟糕的开发人员–好老板
  8. Flutter List 遍历
  9. Android Studio 3.0中mipmap-anydpi-v26是什么东东
  10. layui 实现加载中