当前位置: 首页 > news >正文

常见MQTT服务器搭建与试用

常见MQTT服务器搭建与试用

 

简介

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,它比较适合于在低带宽、不可靠的网络的进行远程传感器和控制设备通讯等,正在日益成为物联网通信协议的重要组成部分。MQTT现在主要用于即时通讯,物联网M2M,物联网采集等。本文就社区上常见的开源MQTT服务器在常见操作系统上的搭建做详细介绍。目前一些开源MQTT服务中间件有:

1)EMQTT:github 3265 stars

2)Mosquitto:github 1645 stars

3)Apollo:ActiveMQ的升级版,github 109 stars,但是该项目已经有3~4年没有更新。而其号称的老版本ActiveMQ反而更新更加频繁。

EMQ君建议读者在阅读此篇文章之前,最好对MQTT协议有一些基本的了解,比如消息主题,消息发布,消息订阅和QoS等。

EMQ服务器在Windows搭建

EMQ (Erlang/Enterprise/Elastic MQTT Broker) 是基于 Erlang/OTP 平台开发的开源物联网 MQTT 消息服务器。Erlang/OTP 是出色的软实时(Soft-Realtime)、低延时(Low-Latency)、分布式(Distributed) 的语言平台。一般来说,生产环境的MQTT服务建议搭建在Linux操作系统上,但是作为在给你验证和使用阶段,可以在常见的Windows平台上搭建、运行和测试。

安装步骤

1)点击这里,下载EMQ windows版

2)解压emqttd-windows7-v2.3.9.zip(这里是解压到D盘)

3)打开 Windows 命令行窗口,进入emqtt解压目录

4)在Windows命令行中启动EMQ,执行下列命令

bin\emqttd.cmd start

 

5)EMQ提供了一个后端Web控制台,用户可通过 Web 控制台,查看服务器运行状态、统计数据、客户端(Client)、会话(Session)、主题(Topic)、订阅(Subscription)、插件(Plugin)。如果EMQ安装在本机,则在浏览器打开http://127.0.0.1:18083,输入默认用户名“admin”和默认密码“public”,进入EMQ管理控制台。如下图所示,“Stats(1)”表格中,显示的是客户端和Topic的一些基本信息,比如“Clients/Count”的数目为0,表示目前连接的客户端数目为0;“Client/Max”表示的是连接曾经达到的最大值等。这里不对每项做一一介绍,读者对MQTT协议比较熟悉之后,就能理解监控仪表盘上的内容。

 

客户端测试 - MQTTBox

在安装好服务器端之后,我们使用MQTT的客户端对MQTT服务器的基本功能进行相关的测试。MQTT客户端有不少,比如mosquito提供了命令行,通过命令行工具可以方便地进行测试;最简单的方式可能还是通过可视化的界面对其进行测试,EMQ君建议用MQTTBox。MQTTBox有两种使用的方式:一种为Chrome插件;另外一种为Windows程序安装。两种方式下使用的方法差不多,本文以Windows程序安装版来介绍其功能。

安装步骤

1)下载安装软件:读者可以根据自己的喜好,下载不同的版本:此处为Chrome版本的下载地址(需FQ);此处为Windows安装程序。

2)根据安装向导的提示,完成MQTTBox的安装

 

3)打开安装好的应用图标,如下图所示

 

测试消息发布/订阅(Pub/Sub)功能

MQTT协议中通过主题(Topic)在消息发布者和

1)建立MQTT连接,如下图所示,点击“Create MQTT Client”

 

2)指定连接相关信息,包括连接名称(可以随意输入)、协议(选择mqtt/tcp)和主机地址(安装在本地,MQTT缺省端口为1883,所以输入127.0.0.1:1883),然后单击“Save”保存。连接中一些别的选项先保持缺省值,读者对MQTT协议比较熟悉之后,就可以了解这些选项的意义。

 

保存成功后进入如下的界面,接下来可以开始测试消息发布和订阅。如下图所示,绿色“Connected”按钮表明当前MQTT连接已经成功

 

3)首先我们开启一个订阅,如下图所示。“Topic to subscribe”里填入要订阅的主题“windows”;“QoS”字段选择“0 - Almost Once”;然后点击“Subscribe”按钮

 

4)设置好订阅的主题后,在发布这边输入如下的信息。“Topic to publish”中输入“windows”,这里输入的主题的名字必须和订阅那里的输入相同;“QoS”中选择“0 - Almost Once”;“Payload”中输入任何内容都可以,如下图所示输入了一组JSON字符串;所有内容输入完毕之后,点击“Publish”按钮

 

5)在订阅端就会收到由服务器端转发的消息内容,如下图所示。

 

6)打开EMQ的管理员控制台,可以看到一些相关的统计数据已经发生了变化。比如在“The messages data”表格中,“qos0/received”的值为1,说明EMQ收到了1条QoS0的消息;“qos0/sent”的值为1,表示EMQ转发了一条QoS0的消息。

 

好了,EMQ君带领着大家初步领略了MQTT服务器能够提供的基本功能,如果读者想了解其它MQTT服务器在不同平台上的安装的话,请参考以下系列文章。

Ubuntu上搭建EMQ MQTT服务器

Ubuntu上搭建EMQ Mosquito服务器

Ubuntu上搭建EMQ Apollo服务器

Windows上搭建Mosquitto MQTT服务器

Windows上搭建Apache Apollo MQTT服务器

 

转载于:https://www.cnblogs.com/dayspring/p/10315712.html

相关文章:

  • glutBitmapCharacter及glBitmap在ATI显卡下无法正常显示的原因初探
  • 俄罗斯“光影魔术”展亮相上海科技馆
  • AsyncTasLoader不进行加载操作的原因及解决方法
  • 一文详解Python字符串条件判断方法
  • 前端 CSS 规范
  • SpringBoot 实战 (三) | 配置文件详解
  • 搜索分词---产生新词的公式
  • ORA-22813 ORA-06512
  • MySQL 服务启动y异常: 本地无法启动MySQL服务,报的错误:1067,进程意外终止---解决...
  • Swift—UITextField的基本用法
  • xkb 第3章 虚拟 Modifiers
  • javascript 隐性类型转换步骤
  • 悲伤的结局!救援人员发现西班牙坠井男孩遗体
  • Python3-进程
  • eclipse中查看某个方法(函数)被谁调用
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • 【知识碎片】第三方登录弹窗效果
  • gitlab-ci配置详解(一)
  • LeetCode18.四数之和 JavaScript
  • overflow: hidden IE7无效
  • Python打包系统简单入门
  • REST架构的思考
  • Swift 中的尾递归和蹦床
  • Vue小说阅读器(仿追书神器)
  • 从零开始的无人驾驶 1
  • 对象引论
  • 利用DataURL技术在网页上显示图片
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 模型微调
  • 实现简单的正则表达式引擎
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • Spring Batch JSON 支持
  • 交换综合实验一
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • #宝哥教你#查看jquery绑定的事件函数
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • #我与Java虚拟机的故事#连载16:打开Java世界大门的钥匙
  • $ git push -u origin master 推送到远程库出错
  • $L^p$ 调和函数恒为零
  • (3)(3.5) 遥测无线电区域条例
  • (9)目标检测_SSD的原理
  • (arch)linux 转换文件编码格式
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (七)c52学习之旅-中断
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (学习日记)2024.02.29:UCOSIII第二节
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表