2、Ubuntu下安装mosquitto

news/2024/11/15 4:13:44/

1、mosquitto库是什么
mosquitto是一款实现了消息推送协议 MQTT v3.1 的开源消息代理软件,提供轻量级的,支持可发布/可订阅的的消息推送模式,使设备对设备之间的短消息通信变得简单。
在实验中使用mosquitto库函数来实现订阅与发布。
mosquitto库函数源码:https://mosquitto.org/api/files/mosquitto-h.html

1.wget下载源码包

wget http://mosquitto.org/files/source/mosquitto-1.5.5.tar.gz

2.解压

 tar -xzvf mosquitto-1.5.5.tar.gz

 3.进入目录

 cd mosquitto-1.5.5/

 4.编译

make

 5.运行安装

sudo make install

 

可能出现问题及解决方法

【1】编译找不到openssl/ssl.hsudo apt-get install libssl-dev

【2】编译过程g++命令未找到:sudo apt-get install g++

【3】编译过程找不到ares.hsudo apt-get install libc-ares-dev

【4】编译过程找不到uuid/uuid.hsudo apt-get install uuid-dev

【5】使用过程中找不到libmosquitto.so.1 error while loading shared libraries: libmosquitto.so.1: cannot open shared object file: No such file or directory

【解决方法】——修改libmosquitto.so位置
创建链接sudo ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1
更新动态链接库sudo ldconfig
    【解决方法】——修改libmosquitto.so位置
# 创建链接
sudo ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1
# 更新动态链接库
sudo ldconfig
【5】make: g++:命令未找到  
    【解决方法】
    安装g++编译器
sudo apt-get install g++

2 简单测试
    一个完整的MQTT示例包括一个代理器,一个发布者和一个订阅者。测试分为以下几个步骤:
【1】启动服务mosquitto。
【2】订阅者通过mosquitto_sub订阅指定主题的消息。
【3】发布者通过mosquitto_pub发布指定主题的消息。
【4】代理服务器把该主题的消息推送到订阅者。


http://www.ppmy.cn/news/93976.html

相关文章

代码随想录算法训练营day53 | 1143.最长公共子序列,1035.不相交的线,53. 最大子序和 动态规划

代码随想录算法训练营day53 | 1143.最长公共子序列,1035.不相交的线,53. 最大子序和 动态规划 1143.最长公共子序列解法一:动态规划 1035.不相交的线解法一:动态规划 53. 最大子序和 动态规划解法一:动态规划解法二&am…

Systrace系列9 —— MainThread 和 RenderThread 解读

本文是介绍 Android App 中的 MainThread 和 RenderThread,也就是大家熟悉的主线程和渲染线程。文章会从 Systrace 的角度来看 MainThread 和 RenderThread 的工作流程,以及涉及到的相关知识:卡顿、软件渲染、掉帧计算等。 这里以滑动列表为例 ,我们截取主线程和渲染线程一…

vite的使用

私人博客 许小墨のBlog —— 菜鸡博客直通车 系列文章完整版,配图更多,CSDN博文图片需要手动上传,因此文章配图较少,看不懂的可以去菜鸡博客参考一下配图! 系列文章目录 前端系列文章——传送门 后端系列文章——传送…

一文读懂:什么是数组

大家好,我是三叔,很高兴这期又和大家见面了,一个奋斗在互联网的打工人。 什么是数组 Java是一种面向对象的编程语言,提供了许多数据结构来处理和组织数据。其中,数组是一种常见且强大的数据结构,是存放在…

递归的基本概念

分类: 直接递归 间接递归 如果递归函数中调用递归的语句为最后一个执行语句,则称这种递归为尾递归 递归使用条件 原问题可以划为一个或多个子问题,且子问题的求解方式与原问题相同,只是数量规模不同 递归的调用次…

Ubuntu crontab 遇到的sh脚本一些问题(手动执行可以,自动执行不行)

问题一: 问题描述: 在写一个脚本循环时候,出现“let:not found”,这是因为在ubuntu默认是指向bin/dash解释器的,dash是阉割版的bash,其功能远没有bash强大和丰富.并且dash不支持let和i等功能. 解决办法: 打开一个终端输入&#xf…

PGXC GaussDB

PGXCA PGXC(PostgreSQL eXtended Coordinator)是一个基于 PostgreSQL 架构的分布式数据库解决方案。它扩展了 PostgreSQL,为用户提供了在多个节点上分布式存储和处理数据的能力。 PGXC 的设计目标是将 PostgreSQL 扩展为能够处理大规模数据…

Python类的属性和方法介绍

Python类的属性和方法介绍 本文主要讲python类属性(类变量)、实例属性(实例变量);类方法、静态方法、实例方法。 【定义在类中的变量也称为属性,定义在类中的函数也称为方法。】 这些都是Python面向对象…