0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何搭建一个MQTT服务器?

RTThread物联网操作系统 来源:Rice嵌入式开发技术分享 作者:RiceDIY 2021-05-10 14:31 次阅读

背景

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。

MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。

关于MQTT我分为2~3篇来描述,先从实践来描述。

MQTT服务器搭建

MQTT是一个基于客户端-服务器的消息发布/订阅传输协议,所以需要一个服务器,MQTT服务器可以选择开源平台--EMQx和ThingsBoard。这两个开源平台部署比较方便。本次的讲解主要基于EMQx开源平台。

EMQx配置EMQx需要进行简单的配置,比如设置MQTT client连接服务器时,需要的username、password等。

因为我的环境是在windows下,所以下面的配置都是基于windows下的,不过其他平台的大同小异。

配置username和password等参数

在解压的目录中打开:emqxetcpluginsemqx_auth_username.conf

从examples中可以看出,可以设置多个username和password

加密方式设置为plain(透传)

配置匿名登录

在解压的目录中打开:emqxetcemqx.conf

6b8b8d24-b03c-11eb-bf61-12bb97331649.png

为true,即允许匿名登录,方便调试,如果设置成false,需要进行鉴权。

操作emqx broker:

// 启动EMQx Broker:

emqx start

// 停止EMQx Broker:

emqx stop

// 重启EMQx Broker:

emqx restart

更多的操作命令参考链接:https://docs.emqx.cn/broker/v4.3/getting-started/command-line.html

EMQx管理界面EMQx中包含了一个Web server,当启动EMQx后,通过浏览器登录《服务器IP:18083》就能登录web server。

其中:默认用户名为 admin, 密码为 public

MQTT客户端搭建

服务器搭建好了,那么还需要一个MQTT客户端,为了快速学习,我们可以使用别人做好的MQTT客户端软件-- MQTT.fx。下载地址:http://www.jensd.de/apps/mqttfx/

下载完,根据提示安装即可。

启动一个MQTT客户端:

打开设置

配置MQTT client

连接服务器

连接成功后,可以在EMQx web server上查看连接信息,如果信息跟客户端的一致,说明连接成功

启动第二个MQTT客户端:

操作跟第一个客户端一致,启动完之后就可以在EMQx web server上查看连接信息

实验

在上述中服务器和客户已经成功建立连接。

我们通过一个实验演示M2M的通信。

其中client01客户端,订阅一个topic,topic名称为rice:

可以通过EMQx web server查看订阅的topic

client02客户端,向topic:rice发布消息。

总结

通过EMQx搭建服务器和MQTT.fx客户端,我们很轻松的搭建好MQTT环境,这样我们很方面的学习MQTT。

MQTT协议是一个基于TCP的应用层协议。可以跟上一篇文章的CoAP协议进行对比学习。CoAP是基于UDP的。不过也有基于UDP的MQTT。

原文标题:教你动手写网络协议栈-MQTT报文解析-实践

文章出处:【微信公众号:RTThread物联网操作系统】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 网络
    +关注

    关注

    14

    文章

    7250

    浏览量

    87436
  • MQTT
    +关注

    关注

    5

    文章

    537

    浏览量

    21972

原文标题:教你动手写网络协议栈-MQTT报文解析-实践

文章出处:【微信号:RTThread,微信公众号:RTThread物联网操作系统】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

     海外云服务器搭建pi节点详细步骤

     海外云服务器搭建pi节点简单吗?海外云服务器搭建pi节点步骤有哪些?小编为您整理发布海外云服务器搭建
    的头像 发表于 02-21 10:16 242次阅读

    一起畅玩!幻兽帕鲁服务器华为云搭建教程(Windows 平台)

    【摘要】 幻兽帕鲁 Palworld 私服搭建教程,帮你快速搭建幻兽帕鲁服务器。 《幻兽帕鲁》是近期爆火的一款开放世界生存建造游戏,在游戏中,玩家可以在广阔的世界中收集神奇的生物“帕鲁”,派他们进行
    的头像 发表于 01-24 17:42 1446次阅读
    一起畅玩!幻兽帕鲁<b class='flag-5'>服务器</b>华为云<b class='flag-5'>搭建</b>教程(Windows 平台)

    【飞腾派4G版免费试用】如何在飞腾开发板上安装EMQX MQTT服务器

    系统中搭建单节点的MQTT服务器。 1. 安装EMQX 本文演示的环境为: 硬件:飞腾派开发板,ARMV8架构 操作系统:Ubuntu
    发表于 12-26 11:16

    如何自己搭建一个服务器

    如何自己搭建一个服务器?自己搭建一个服务器涉及到硬件和软件两个方面。下面是一个简单的指南,涵盖了基本的步骤。请注意,这是一个概述,实际步骤可能因你的需求和硬件选择而有所不同。
    的头像 发表于 12-12 16:52 2530次阅读

    搭建ftp服务器的步骤

    搭建ftp服务器的步骤  搭建FTP服务器是一项需要一定技术知识的任务,但是只要按照以下步骤进行操作,您就能成功搭建自己的FTP
    的头像 发表于 12-07 16:32 742次阅读

    apollo服务器mqtt单片机怎么往上发报文?

    apollo服务器mqtt单片机怎么往上发报文
    发表于 11-03 06:00

    服务器怎么连接到设备,MQTT和TCP的通讯方式有什么不同?

    采用ESP8266进行开发,服务器怎么连接到设备的,MQTT 和TCP的通讯方式有什么不用呢
    发表于 11-02 08:34

    存储服务器怎么搭建

      搭建存储服务器需要根据我们的需求和环境选择合适的硬件和软件,并进行相应的配置。那么存储服务器怎么搭建?
    的头像 发表于 10-31 16:51 1828次阅读

    基于EMQX平台自建MQTT服务器并实现通讯

    MQTT消息服务器,提供了稳定可靠的消息传输服务。本次教程中,我们将探讨如何基于EMQX平台自建MQTT服务器,并实现设备之间的高效通讯。
    的头像 发表于 10-27 08:21 700次阅读
    基于EMQX平台自建<b class='flag-5'>MQTT</b><b class='flag-5'>服务器</b>并实现通讯

    串口服务器如何使用OneNET平台MQTT服务器通讯教程 #MQTT #串口服务器 #OneNET平台

    串口服务器
    亿佰特物联网应用专家
    发布于 :2023年10月26日 15:47:36

    AT32基于mbed TLS的HTTPS服务器

    AT32基于mbed TLS的HTTPS服务器介绍如何使用mbed TLS 搭建HTTPS 服务器,用户可以根据自己的应用去编写网页内容
    发表于 10-26 08:24

    通过Mosquitto发布到代理到服务器后如何断开MQTT

    我正在处理 MQTT 代码 (tuanpmt),我想在数据通过 Mosquitto 发布到代理到服务器后断开 MQTTMQTT:发送,类型:3,id:0000 TCP: 已发送
    发表于 06-12 07:44

    Web服务器启动时MQTT (SSL) 断开连接如何解决?

    周问题。任何种协议都在运行 MQTT /web 服务器。如果网络服务器已启动,则 mqtt
    发表于 06-02 07:51

    在远程服务器搭建一个OpenVPN服务

    应公司要求需要在一台远程服务器搭建一个OpenVPN服务端,在公司本地服务器搭建一个OpenVPN客户端,实现公司内网可以访问远程
    的头像 发表于 05-26 15:03 4589次阅读
    在远程<b class='flag-5'>服务器</b>上<b class='flag-5'>搭建</b>一个OpenVPN<b class='flag-5'>服务</b>端

    求分享运行到ESP8266中的MqTT服务器实例

    我开发了运行到 ESP8266 的 MqTT 服务器实例,具有以下功能: - 使用 MqTT 3.1.1 协议 - 管理 QoS0 消息
    发表于 05-23 07:31