MQTT-mosquitto 最新版移植注意 | 学习笔记

简介: 快速学习 MQTT-mosquitto 最新版移植注意

开发者学堂课程【嵌入式之 RFID 开发与应用2020版:MQTT-mosquitto 最新版移植注意】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/665/detail/11179


MQTT-mosquitto 最新版移植注意

内容简介:

一、下载 Ubuntu 版本的方法

二、最新版本的移植方法

三、移植结束后就行的简单测试

四、总结移植过程

 

一、下载 Ubuntu 版本的方法

上节课在移植 mosquitto 的 1.5.4 版本的时候,出现错误,休息的时候进行了改正,但改正之后错误依然是存在的,Ubuntu 的版本是有问题的。下载的版本是18.04,但是课件中的版本是 16 或者是 12 的版本,所以有些问题,后来在Ubuntu16.04 的版本同样配置过,对于 18 来说,要用最新的,所以建议在网上下载。在百度中输入 mosquitto.or 进去页面之后点击 Community 再点击 40 releases 就可以下载最新版。1.6.9 就是最新版本,点击 Source code(tar.gz)下载。现在就不去下载了,刚才已经下载好了。

image.png

 

二、最新版本的移植方法

首先,进行解压, 在窗口输入 tar xvf mosquitto-1.6.9.tar.gz,

然后创建一个安装路径 mosquitto-1.6.9_install, 再进入到 mosquitto-1.6.9_install里面。

它的配置比之前低版本的要简单,已经做了很多的工作,它的整个配置不需要用config 去配,只需要设置一个目标的环境变量 destdir 就可以。把路径 mosquitto-1.6.9_install 设成环境变量 /home/edu/debug/mqtt/mosquitto-1.6.9_install,

image.png

用完之后再把环境变量取消就可以,接下来就只需要打开 config。打开之后直接修改里面的,在 lcrypto 的后面加上 _ldl  BROKER_LDADD:=$(BROKER_LDADD)-lssl-lcrypot-ldl    LIB_LIBADD=$(LIB_LIBADD) -lssl -lcrypto -ldlPASSWD_LDADD:=$(PASSWD _LDADD) _lcrypto -ldlSTATIC_LIB_deps:=$(STATIC_LIB_DEPS)-lssl-lcrypto-ldl,把四个地方改完之后退出就可以编译了。

image.png

因为编译时间不是很长,大概两分钟于是就把它给截掉了,编完之后,接下来可以看一下,安装目录里面没有东西,现在直接安装,然后再回到另一个窗口,它的东西被安装到了 user 目录,user 目录下有 local、bin 还有 sbin 这是普通的命名,还有 etc,etc 和直接去安装的是一样的,服务器的配置文件就在这个地方,装完之后要把之前的环境变量取消。结束之后,需要进入到服务器里配置文件有 example 把它拷一份出来。其实就是给了一个参考,从 mosquitto.conf.example 得到mosquitto.conf,其实默认的基本上没有什么配置,里面全部给的是一些建议,如果需要配置就把这个情况打开,或者是自己向其中去添加,这个很长,就不一一去看。

 

三、移植结束后就行的简单测试

结束之后就可以用 PPT 里面所讲的方法进行测试,先进行一个测试,先不要对参数去进行修改,测试建议因为是直接生成的命令 edu@edu;mosquitto_1.6.9_install$ cd usr/local/bin/,

命令就不需要添加环境变量了,这样会跟系统安装的产生冲突,就直接去启动,假设要启动 usr/local/sbin, 假设要启动这个服务器,那就直接 ./mosquitto,那么-C 指定配置文件 /home/edu/debug/mqtt/mosquitto-1.6.9_install/etc/mosquitto/mosquitto.conf,1883 端口正在被使用,可以换一个端口 -p 1893, 启动了之后,在另一个窗口可以去订阅,订阅可以用早期 PPT 之前的方法。

image.png

用 mosquitto_sub -t“temp” 这种方发直接订阅就可以,而且这个时候可以用系统自带的命令去订阅,也可以用当前目录下去编写的 mosquitto_sub-t  temp 去订阅,订阅完成后接下来去发布,发布用 mosquitto_pub -t temp -m hello,看另一个窗口是否可以收到,按回车,显示并没有收到,这时重新再加一些参数,因为端口号改为了 -p 1893 ,重新发布一下 -p  1893, 这样就收到了,首先服务器是编译的,订阅是编译的,发布也是订阅的,但是如果用系统自带的去发布也可以,系统自带的话,把“. /”去掉,因为协议本身是相同的,用哪个工具来实现都可以,剩下的所有的配置,如果需要对服务器进行一系列的配置完全包括在编译的时候并没有对配置文件进行过多的裁剪,对这个源码 mosquitto -1.6.9$ vim config mk,仔细观察会发现整个文件的开头就是所支持的这些模块,几乎可能都是 yes

image.png

除非手动的把它关闭,当然也有一些关闭的,所以说采用的是系统的默认配置,基本上能有的功能都有了,而且现在用的这个版本 mosquitto --version 是 1.6.8,之前的版本是 1.6.9,差了一个版本,所以几乎是差不多的,接下来所有的配置比如说要去进行非匿名登录,就需要把这个配置文件 etc/mosquitto/mosquitto.conf 加上,然后通过 passwd 去生成账户,passwd 这个地方也有。如果说需要进行更多的配置,同理比如说安全通信、ssl 同样的配置,包括证书、公钥、密钥。

 

四、总结移植过程

整个移植过程最后进行简单总结就是,在 ubuntu 的更高级的版本中 18.04 里面,1 版本会有问题,具体问题后面有时间去查,换一个最新的版本就过了,1.5.4 在低版本中编译是没有问题的。最后就是对它的使用方法LD_LIBRARY_PATH=/home/user/mqtt/pc/mqtt_install/home/user/mqtt/pc/mqtt-install/lib,

这里就不去设环境变量了,暂时用在网上更新的,不是用源码编译。下节课会去讲嵌入式的移植。

相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
6月前
|
消息中间件 存储 算法
RocketMQ学习笔记
RocketMQ学习笔记
155 0
|
6月前
|
传感器 网络协议 中间件
Mqtt学习笔记--交叉编译移植(1)
Mqtt学习笔记--交叉编译移植(1)
121 0
|
6月前
|
编解码 Ubuntu 算法
【Linux】NUC977移植使用MQTT(基于mosquitto)
【Linux】NUC977移植使用MQTT(基于mosquitto)
|
消息中间件 存储 缓存
RibbitMQ学习笔记之MQ练习(三)
RibbitMQ学习笔记之MQ练习
49 0
|
消息中间件 网络协议 数据中心
RabbmitMQ学习笔记-RabbitMQ集群架构模式
RabbmitMQ学习笔记-RabbitMQ集群架构模式
83 0
|
消息中间件 Java
RabbmitMQ学习笔记-RabbitMQ与SpringBoot2.0整合实战
在使用 RabbitMQ 的时候,作为消息发送方希望杜绝任何消息丢失或者投递失败场景。RabbitMQ 为我们提供了两种方式用来控制消息的投递可靠性模式。
116 0
|
消息中间件 中间件
RibbitMQ学习笔记之MQ发布确认
RibbitMQ学习笔记之MQ发布确认
56 0
|
消息中间件 网络协议
RibbitMQ学习笔记之MQ练习(二)
RibbitMQ学习笔记之MQ练习
34 0
|
消息中间件 网络协议 Java
RibbitMQ学习笔记之MQ练习(一)
RibbitMQ学习笔记之MQ练习
78 0
|
消息中间件 存储 网络协议
RibbitMQ学习笔记之MQ 的相关概念
RibbitMQ学习笔记之MQ 的相关概念
82 0