Linux MQTT环境搭建详细步骤

news2024/11/15 13:21:28

关于MQTT的安装之前写过一次,但是不够详细,这里重新补充一下,以后用到的时候更方便。

1. 安装MQTT服务器

上网搜索apache activemq,找到它的官网https://activemq.apache.org/。

 

 

下载Linux版本。写文档时版本为ActiveMQ 5.18.1 Release

解压后进入目录,运行:./bin/activemq console

即可启动服务

 

无法启动,java版本不对。安装对应的java版本。

$sudo apt install openjdk-11-jdk

然后再次启动服务

2. 安装MQTT 客户端

在https://github.com/eclipse/paho.mqtt.c下载安装包并解压,进入目录。

$make

报错,然后sudo apt install libssl-dev

$make

成功

$make install

注意,这里直接make,不是去build文件夹下make。

3. 测试是否安装成功,使用自带的示例

发布程序示例MQTTClient_publish.c:

$cd src/samples/

在mqtt工程的src/samples目录下,打开MQTTClient_publish.c。

通过修改#define ADDRESS设置服务器地址。

$vi MQTTClient_publish.c

#define ADDRESS     "tcp://mqtt.eclipseprojects.io:1883"更改为

  #define ADDRESS     "tcp://172.16.67.130:1883"

然后保存退出。

172.16.67.130是步骤1服务所在的ip,这里与代码都在同一个机器上。

修改#define PAYLOAD 设置消息内容。(这里保持不变)

修改#define TOPIC修改发布主题。(这里保持不变)

订阅程序示例MQTTClient_subscribe.c:

在mqtt工程的src/samples目录下,打开MQTTClient_subscribe.c

通过修改#define ADDRESS设置服务器地址。

$vi MQTTClient_subscribe.c

#define ADDRESS     "tcp://mqtt.eclipseprojects.io:1883"更改为

  #define ADDRESS     "tcp://172.16.67.130:1883"

然后保存退出

修改#define TOPIC修改订阅主题。主题与发布者一致时,可收到发布的消息。(这里保持不变)

$cd ../../

$make

$cd build/output/samples

回到paho.mqtt.c的目录下,然后重新make,在build/output/samples会有生成文件,执行MQTTClient_subscribe,然后在另一个终端执行MQTTClient_publish,就可以看到通信。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/710477.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

改进的白鲸优化算法

改进的白鲸优化算法 一、算法灵感二、算法介绍2.1 初始化2.2 探索阶段2.3 开发阶段2.4 鲸落阶段 三、改进的白鲸优化算法3.1 集体行动策略3.2 小孔成像策略3.3 二次插值策略3.4 IBWO伪代码 一、算法灵感 白鲸优化算法(Beluga whale optimization, BWO)是2022年提出的一种元启发…

面试必备之安卓APP测试知识大全(值得收藏)

目录 一、安卓系统知识概述 1.1 安卓系统架构 1.2 安卓权限系统 1.3 认识adb与安卓间的通信 二、安卓APP测试流程图(转) 三、安卓App测试点 3.1 UI测试 3.2 兼容性测试 3.3 安装卸载/本地升级测试OTA 3.4 版本在线升级测试FOTA 3.5 交互测试 …

记录--让整个网站界面无滚动条

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 界面无滚动条 滚动条的优化也有很多种,比如随便再网上搜索美化浏览器滚动条样式,就会出现些用css去美化滚动条的方案。 那种更好呢? 没有更好只有更合适 像默认的滚…

【网络安全入门】001、基础入门-概念名词

文章目录 基础入门-概念名词1、域名(1)什么是域名(2)域名在哪里注册(3)什么是二级域名多级域名(4)域名发现对于安全测试的意义? 2、DNS(1)什么是D…

C语言编程:坐标系的平移和旋转

本文总结博主在工作中遇到的坐标系转换相关问题,以及C语言编程实现。 文章目录 1 问题场景2 公式推导2.1 旋转坐标系推导2.2 平移坐标系推导2.3 完整公式 3 C语言编程 1 问题场景 对于ADAS算法开发,在工作中遇到过很多需要坐标系转换的场景。例如&…

进制转换(十进制与十六进制互转)

之前的一家公司基本上都是基于单片机进行开发,一般与上位机的通信都是按照自定义的协议进行操作,测试的时候会经常都对协议进行修改并且涉及到进制之间的转换,例如获取版本是十六进制的需要转换成十进制的版本信息,例如修改时间需…

013-从零搭建微服务-认证中心(五)

写在最前 如果这个项目让你有所收获,记得 Star 关注哦,这对我是非常不错的鼓励与支持。 源码地址(后端):https://gitee.com/csps/mingyue 源码地址(前端):https://gitee.com/csps…

LoRa模块(SX1278)详解

LoRa模块(SX1278) 0. LoRa概述概念LoRa技术的主要特点LoRa技术的工作原理 1. 常见的LoRa模块2. Semtech SX12783. STM32使用SX1278方法示例代码 0. LoRa概述 概念 LoRa(Long Range)是一种长距离、低功耗的无线通信技术&#xff…

被劫持的礼物

根据题目其实也猜得到这道题的大致考察内容 下载好后得到一个wireshark的流量文件 根据提示,flag是账号和密码组合的MD5值,想到登录,其实就想到两个登录框 也就是POST请求方法 打开文件后会也会得到一些 http的包,过滤一下 查看到…

线性DP—入门篇

线性动态规划的主要特点是状态转移的推导是按照问题规模 从小到大依次推导,较大规模的问题的解依赖较小规模的问题的解。 数字三角形: [USACO1.5][IOI1994]数字三角形 Number Triangles - 洛谷https://www.luogu.com.cn/problem/P1216我们来看一道经典…

ModaHub魔搭社区:向量数据库Milvus产品问题(三)

目录 Milvus 的数据落盘逻辑是怎样的? Mishards 推荐的配置是什么? Mishards 支持 RESTful API 吗? 什么是归一化?Milvus 中为什么有时候需要归一化? 为什么欧氏距离和内积在计算向量相似度时的结果不一致&#x…

【Git原理与使用】-- 分支管理

目录 理解分支 创建分支 查看当前分支 创建本地分支 切换分支 合并分支 删除分支 合并冲突 分支管理策略 分支策略 bug 分支 不建议的合并方式 建议的合并方式 第一步 第二步 删除临时分支 理解分支 分支就是科幻电影里面的平行宇宙,当你正在电脑前…

java 全局、局部异常处理详解及result结果封装

1、引入spring-boot-starter-web依赖和new-swagger依赖 <dependency><groupId>com.jjw</groupId><artifactId>new-swagger</artifactId><version>1.0-SNAPSHOT</version> </dependency> <dependency><groupId>or…

Linux系统编程:进程的替换

目录 一. 进程替换的原理 二. 进程替换的方法 2.1 进程替换的相关函数 2.2 进程替换为其它的C/C程序或其它语言编写的程序 三. 自主实现简单地命令行解释器 四. 总结 一. 进程替换的原理 进程替换&#xff0c;就是对进程所执行的代码进行替换&#xff0c;让正在运行的一个…

华为OD机试真题 Python 实现【简单的自动曝光】【2023Q1 100分】,附详细解题思路

目录 一、题目描述二、输入描述三、输出描述四、备注五、解题思路六、Python算法源码七、效果展示1、输入2、输出3、说明4、再输入5、输出6、说明 一、题目描述 一个图像有 n 个像素点&#xff0c;存储在一个长度为 n 的数组 img 里&#xff0c;每个像素点的取值范围[0,255]的…

HOT33-排序链表

leetcode原题链接&#xff1a;排序链表 题目描述 给你链表的头结点 head &#xff0c;请将其按 升序 排列并返回 排序后的链表 。 示例 1&#xff1a; 输入&#xff1a;head [4,2,1,3] 输出&#xff1a;[1,2,3,4]示例 2&#xff1a; 输入&#xff1a;head [-1,5,3,4,0] 输出…

html内盒子长宽增加溢出但是外盒子不自动向下延

自动扩展 问题描述 外盒子设置固定px&#xff0c;导致内盒子如图片长宽增加后&#xff0c;溢出但是外盒子不自动扩展&#xff08;向下延申&#xff09; 图片高230时正常 设置250后超出 问题解决 /*height: 660px;*/ /*设死就不能自动扩展&#xff0c;内块块长宽超出&#x…

vuex-persistedstate —— 数据持久化

在之前的篇目当中对于 Vuex 中的相关内容都讲得差不多&#xff0c;但是在项目中去使用vuex&#xff0c;虽然数据状态得到管理了&#xff0c;但数据在每一次都需要去重新加载&#xff0c;那么对于数据的持久化vue是没有给解决的&#xff0c;而是通过第三方的工具去进行数据的持久…

代码随想录算法训练营第17期第4天(5休息) | 24. 两两交换链表中的节点、19. 删除链表的倒数第 N 个结点、面试题 02.07. 链表相交、​​​​​​142. 环形链表 II

目录 24. 两两交换链表中的节点 19. 删除链表的倒数第 N 个结点 面试题 02.07. 链表相交 ​​​​​​142. 环形链表 II 这题不是很难&#xff0c;目前除了从【.】变成了【->】之外&#xff0c;python和C也没啥区别 另外就是对虚拟头结点的掌握了 /*** Definition for …

爬虫小白入门在服务器上-部署爬虫或者开服务接口并供给他人访问

目录 一、准备工作-服务器1、先准备一个服务器&#xff08;以阿里云为例子&#xff09;2、开通服务端口号访问权限 二、准备工作-Xshell登录服务器1、xshell基本登录操作2、xftp基本操作 三、部署代码到服务器上1、部署一个python爬虫脚本在服务器上定时运行等2、部署一个pytho…