MQTT协议介绍及linux系统下模拟实现

MQTT协议介绍及linux系统下模拟实现

1.MQTT协议介绍

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于TCP/IP协议之上,mqtt协议在物联网开发中起着极其重要的位置。
MQTT实现后的框架如下图:

比如,现在发布者(手机app等)发布一条消息给代理者(阿里云),消息结构我们可以自己定义(可以为一串字符串),于此同时,订阅者(我们的产品)可以与代理者进行数据传输(使用mqtt协议实现),通信需要在代理者上面做订阅与发布的设置。

二.使用linux模拟通信过程

1.搭建模拟环境(操作过程注意每一点下方的注意事项)

a.下载mosquitto软件

下载地址:http://mosquitto.org/files/source/
这里我下载的版本是mosquitto-1.4.5.tar.gz

b.解压文件

将mosquitto-1.4.5.tar.gz放入linux操作系统,解压:tar zxfv mosquitto-1.4.5.tar.gz

c.编译安装

到解压目录,make /sudo make install
注意:安装过程可能报如下错误
在这里插入图片描述编译报错找不到openssl/opensslconf.h (百度发现需要安装libssl-dev)
sudo apt-get update
sudo apt-get install libssl-dev
sudo apt-get install openssl
再次执行make / make install
如果在遇到其他错误,可以直接将错误的地方贴到百度上查找解决方法。

二.测试

完成mosquittor软件后,需要打开三个终端进行测试。
第一个终端:执行命令mosquitto -v //打开mosquitto。
在这里插入图片描述
第二个终端:执行命令 mosquitto_sub -t topic01 //订阅主题topic01。
在这里插入图片描述
第三个终端:执行命令 mosquitto_pub -t topic01 -m “message01” //向topic01这个订阅发布一个消息,内容为"message01"。

注意:执行 mosquitto_sub -t topic01,会出现如下报错
在这里插入图片描述
错误表示找不到libmosquitto.so.1库,所以我们需要做下面操作
sudo ln -s /home/cdb/tool/mosquitto-1.4.5/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1 //链接库
echo $PATH
查看有没有/usr/lib/,如果没有
export P A T H = PATH= PATH=PATH:/usr/lib/ 将/usr/lib/添加到环境变量
执行sudo ldconfig 为了让动态链接库为系统所共享即可

第三个终端发送消息,会被第二个终端接收到,如下图
在这里插入图片描述
以上基于mqtt协议完成了一次模拟数据的通信传输,实际项目中也是基于此实现数据传输,此方式广泛应用与物联网之中。

此博客是我初次接触mqtt协议,在linux系统中模拟是为了更加清楚的了解整个数据传输流程,在此简单做个记录,如果存在错误的地方欢迎指出。
作者:cdb雪地里

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值