由于近期公司需要搭建一套物联网采集环境,底层设备采用MQTT协议传输数据。服务器环境为linux,考虑到现有环境已经有RabbitMQ环境,Rabbit是基于AMQP协议开发的一套高效的消息传输队列。心想Rabbit是否也支持MQTT呢,百度一番果然有收获,Rabbit集成了MQTT环境只需要几句命令就可以完成扩展。

RabbitMQ 默认关闭MQTT 协议,需用命令手动扩展,RabbitMQ 的MQTT 协议分为两种。

  • rabbitmq_mqtt 提供与后端服务交互使用,端口1883

  • rabbitmq_web_mqtt 提供与前端交互使用,端口15675

使用rabbit自带的控制台输入命令,这样方便点。也可以用windows cd到rabbit目录敲命令。

输入以下命令
   rabbitmq-plugins enable rabbitmq_mqtt                                                       开启   rabbitmq_mqtt 对应端口 1883

  rabbitmq-plugins enable rabbitmq_web_mqtt                                               开启   rabbitmq_web_mqtt 对应端口 15675



开启成功后这时,MQTT服务就搭建好了。现在可以测试,MQTT通讯了。使用rabbit 作为MQTT服务的话,需要创建 topic类型的交换机。交换机名作为订阅和发布消息的Topic

创建一个名为MQTT的交换机,类型为Topic很重要。

这时服务端就创建好了,现在我们再开启两个客户端进行消息传输。我这里用的时MQTTX工具测试。

账号密码就是Rabbit的登录账号密码,其余参数默认就可以连接。连接成功后就可以发送消息了。 法送消息时记得填写交换机名我这里交换机名为MQTT

这是打开我的MQTT订阅客户端,就可以接收到消息了。

这样就完成了整个通讯流程,我基于.net5 开发了一套MQTT客户端,后续给大家分享下。

 

使用RabbitMQ搭建MQTT服务的更多相关文章

  1. windows 下搭建 MQTT 服务

    1.首先搭建起MQTT服务 1.1安装mosquitto,mosquitto是开源的MQTT代理服务器,它的Windows安装包地址:https://mosquitto.org/download/ 1 ...

  2. 初始mqtt服务

    MQTT入门 概念 mqtt意为消息队列遥测传输,是IBM开发的一个即时通讯协议.由于其维护一个长连接以轻量级低消耗著称,所以常用于移动端消息推送服务开发. 协议格式 mqtt协议控制报文的格式包含三 ...

  3. 使用EMQ搭建MQTT服务器

    前言寒假的时候开始搭建mqtt服务器,一开始使用的是RabbitMQ,基于Erlang语言.但是RabbitMQ的本职工作是AMQP,MQTT只是他的一个插件功能,似乎有些大材小用,很多MQTT的功能 ...

  4. 【译文】用Spring Cloud和Docker搭建微服务平台

    by Kenny Bastani Sunday, July 12, 2015 转自:http://www.kennybastani.com/2015/07/spring-cloud-docker-mi ...

  5. spring cloud+dotnet core搭建微服务架构:配置中心续(五)

    前言 上一章最后讲了,更新配置以后需要重启客户端才能生效,这在实际的场景中是不可取的.由于目前Steeltoe配置的重载只能由客户端发起,没有实现处理程序侦听服务器更改事件,所以还没办法实现彻底实现这 ...

  6. 快速搭建MQTT服务器(MQTTnet和Apache Apollo)

    前言 MQTT协议是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分,http://mqtt.org/. MQTT is a machine-to-machine (M2M)/" ...

  7. rabbitmq作为mqtt服务器实现websocket消息推送给浏览器

    rabbitmq的RabbitMQ Web MQTT插件可以用来支持将rabbitmq作为MQTT协议的服务器,而websocket支持mqtt协议通信实现消息推送.因为我们目前使用rabbitmq, ...

  8. spring cloud+.net core搭建微服务架构:配置中心续(五)

    前言 上一章最后讲了,更新配置以后需要重启客户端才能生效,这在实际的场景中是不可取的.由于目前Steeltoe配置的重载只能由客户端发起,没有实现处理程序侦听服务器更改事件,所以还没办法实现彻底实现这 ...

  9. 高可用rabbitmq集群服务部署步骤

    消息队列是非常基础的关键服务,为保证公司队列服务的高可用及负载均衡,现通过如下方式实现: RabbitMQ Cluster + Queue HA + Haproxy + Keepalived 3台ra ...

随机推荐

  1. IntelliJ IDEA 的 Bean validation 里有什么用

    IntelliJ IDEA  的 Bean validation 是指右侧的框. 平时都是缩起来的,今天心血来潮.研究下这个是干嘛的?怎么用. 三个按钮全按下的话,下面的项目就会有三个菜单可选项. C ...

  2. 说透 Docker:虚拟化

    本章内容将讲解 Docker 虚拟化.虚拟化本质.namespace.cgroups. Docker 虚拟化 关于Docker 本小节将介绍 Docker 虚拟化的一些特点. Docker 是一个开放 ...

  3. Vue: 一个简单的Vue2.0 v-model双向数据绑定的实现,含源代码,小白也能看懂

    首先说一下原理吧 View层(dom元素)的变动如何响应到Model层(Js变量)呢? 通过监听元素的input事件来动态的改变js变量的值,实际上不是改变的js变量的值,而是改变的js变量的gett ...

  4. 权限树的制作(menu)

    原来demo 实体类:get.set 1.使用递归的方式将数据查询出来. 2.为了减少数据库交互,一次查询所有数据,遍历集合,然后先判断父节点,如果不是父节点,用原集合重新遍历 3.map形式减少遍历 ...

  5. 状压DP详解+题目

    介绍 状压dp其实就是将状态压缩成2进制来保存 其特征就是看起来有点像搜索,每个格子的状态只有1或0 ,是另一类非常典型的动态规划 举个例子:有一个大小为n*n的农田,我们可以在任意处种田,现在来描述 ...

  6. CF1175G

    叉姐牛逼. \(f_{k,i} = \min_{0\leq j <i}{f_{k - 1,j} + RMQ(j + 1,i) * (i - j)}\) 我们考虑在序列上分治一波. 按照\(m\) ...

  7. cookie的生命周期、访问限制、作用域、prefixes

    cookie的生命周期 cookie的生命周期可以通过两种方式定义: 会话期cookie是最简单的cookie:浏览器关闭后会被自动删除.会话期cookie不需要指定过期时间(Expires)或者有效 ...

  8. dlang 安装

    刷论坛看到TIOBE排行榜,排名靠前的基本是C.C++.java.python之类的语言,常用的R语言近几年排名一路走高,前20基本变化不大. 后面发现第二十九位居然有个叫做D的语言,看了下和C语法很 ...

  9. 61. Binary Tree Inorder Traversal

    Binary Tree Inorder Traversal My Submissions QuestionEditorial Solution Total Accepted: 123484 Total ...

  10. MongoDB的搭建、参数

    Mongodb官网:https://www.mongodb.com/ mkdir -r  /data/db touch  /data/log tar -zxvf mongodb-linux-x86_6 ...