MQTT——快速搭建客户端和服务器

本文介绍了如何搭建基于MQTT协议的EMQX服务器并使用libemqtt实现客户端。EMQX提供一键安装及后台管理,支持WebSocket订阅发布。客户端使用libemqtt库,通过订阅接收到发布者的消息。文章还展示了简单的消息收发流程。
摘要由CSDN通过智能技术生成

MQTT是物联网中应用及其广泛的应用协议,mqtt由于其带宽低和基于发布订阅的模式的优点,被各物联网平台推广使用。MQTT首先有三个角色:订阅者、发布者、中间代理。订阅者通过订阅指定消息类型可收到发布者发布的制定类型消息。服务器作为代理做消息的转发。这种基于发布订阅的模式与物联网中边缘终端1对N的特征完全匹配。不得不说MQTT协议天生为物联网而生。
在这里插入图片描述
本文将分两部分总结下搭建基于MQTT协议的服务端和客户端。

一、server

MQTT作为一种协议被各厂家实现了各种版本,mqtt的官网https://mqtt.org也提供了各个源码的链接。
这里使用emqx作为服务器,emqx为用户提供了后台管理界面,程序运行后可直接通过web查看或更改服务。emqx官网有介绍各种平台的不同安装方式,这里建议使用官网提供的一键安装脚本

curl https://repos.emqx.io/install_emqx.sh | bash

安装完成后可直接通过emqx start运行服务,服务打开后可通过web访问后台的方式查看各种信息。默认端口是18083。如果是云服务器记得开放该端口访问权限。在这里插入图片描述
默认是英文显示,可以自行在设置中更改语言和显示主题。同时由于emqx还提供websocket方式订阅发布消息。后台Dashboard也提供了通过websocket方式建立连接、发布、订阅的功能,方便用户可以直接测试功能效果。

二、client

参考mqtt官网提供的几个版本的客户端源码,最终使用了libemqtt版本。直接从github下载代码之后make即可生成发布和订阅两个demo,这里以订阅为例运行sub后,demo死循环打印接收到的订阅的消息
在这里插入图片描述
通过web发送客户端订阅的主题消息,消息内容为hello, World。这里需要理解下,虽然是通过服务端的后台发送的消息,但web通过websocket建立连接后,此时的web也是客户端之一。
在这里插入图片描述
客户端接收到消息,并打印出来
在这里插入图片描述
libemqtt的demo中只是用到了基本的功能,库中的多个接口还需要日后有时间慢慢研究下

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值