mosquitto的安装与使用
一款实现了消息推送协议 MQTT v3.1 的开源消息代理软件,提供轻量级的,支持可发布/可订阅的的消息推送模式,使设备对设备之间的短消息通信变得简单,比如现在应用广泛的低功耗传感器,手机、嵌入式计算机、微型控制器等移动设备。一个典型的应用案例就是 Andy Stanford-ClarkMosquitto(MQTT协议创始人之一)在家中实现的远程监控和自动化。并在 OggCamp 的演讲上,对MQTT协议进行详细阐述。
一、准备材料
安装包:openssl、JSON-C、mosquitto
安装环境:ubuntu20.04
二、MQTT协议
MQTT每个版本之间存在一定的差异,需要了解相关信息的请参考相关协议说明
MQTT中文网:http://mqtt.p2hp.com/
三、下载源码
- openssl下载
openssl官网:https://www.openssl.org/
openssl源码下载


- mosquitto下载
mosquitto官网:http://mosquitto.org/
mosquitto源码下载


mosquitto的所以源码版本都在source路径下

- json-c下载
通过git获取json-c源码
git clone https://github.com/DaveGamble/cJSON
四、mosquitto安装
安装方式有两种,分为指令安装和源码安装,可以根据自己的需要选择相应的安装方式
- 源码安装
了解源码的安装主要是方便后面学习移植,先将openssl和mosquitto拷贝到linux环境中进行解压,先安装openssl再安装mosquitto。
安装openssl
tar vxf openssl-1.1.1l.tar.gz
cd openssl-1.1.1l
ls

./config
make
make test
sudo make install
安装完成后会在/usr/local路径下生成ssl文件,并在include和share文件中生产相关文件。
安装json-c
git clone https://github.com/DaveGamble/cJSON
cd cJSON
make all
sudo make install
安装mosquitto
tar vxf mosquitto-2.0.11.tar.gz
cd mosquitto-2.0.11
ls

直接make即可
make
sudo make install
- 指令安装
sudo apt-get install mosquitto
sudo apt-get install mosquitto-clients
五、mosquitto使用
测试mosquitto至少需要打开3个命令窗口。
- 启动服务端(代理服务器)
mosquitto -c /etc/mosquitto/mosquitto.conf.example

2. 启动订阅端(订阅者)
mosquitto_sub -t temp

订阅成功后代理服务器将会输出相应的信息

3. 发布消息(发布者)
mosquitto_pub -t temp -m hello_world

发布完成后订阅者将会收到相信的信息

问题处理
- mosquitto_sub: error while loading shared libraries: libmosquitto.so.1: cannot open shared object file: No such file or directory

解决办法:
sudo ldconfig
- Error: Address already in use

解决办法:
sudo lsof -i:1端口号
kill -9 进程号
参考文献
mosquitto百度百科:https://baike.baidu.com/item/mosquitto/3172080?fr=aladdin
openssl百度百科:https://baike.baidu.com/item/openssl/5454803?fr=aladdin
Linux下cJSON安装及使用:https://zhuanlan.zhihu.com/p/55095477
MQTT服务器搭建--Mosquitto:https://hao123.blog.csdn.net/article/details/112789257
MQTT--mosquitto使用详解:https://blog.csdn.net/qq_28877125/article/details/78330809
mosquitto的安装与使用的更多相关文章
- Centos7-mqtt消息中间件mosquitto的安装和配置
在以前发布的博客"菜鸟是如何打造智能家居系统的"文章最后我提到了使用MQTT协议作为云平台和设备之间的通信协议以达到消息传递的实时性,手机的消息推送也大多基于这种平台,首先搬来一段 ...
- mosquitto centos安装配置
周末弄wordpress的Mysql,一不小心把wordpress弄不好了,写了的好几遍文章也没有了,一怒之下,把整个系统重装了,安装了不带任何软件的新系统,重新搭一遍. 0.安装ftp服务器 #yu ...
- 一、Mosquitto 介绍&安装
一.Mosquitto 介绍 一款实现了消息推送协议 MQTT v3.1 的开源消息代理软件,提供轻量级的,支持可发布/可订阅的的消息推送模式,使设备对设备之间的短消息通信变得简单,比如现在应用广泛的 ...
- mosquitto broker 安装服务后启动失败
一.失败原因 由于做项目用到Mqtt协议,需要安装mosquitto broker 服务,在自己本地笔记本电脑安装后直接启动服务是可以的.后来部署到服务器启动,报错缺少msvcr100.dll ,由于 ...
- 【MQTT】Mosquitto的安装与使用流水记
最近使用MQTT,安装Mosquitto试一下,并记录下来. 软件准备 从官网获取安装包: wget http://mosquitto.org/files/source/mosquitto-1.4.1 ...
- MQTT消息中间件Mosquitto的安装和配置
特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...
- Mosquitto安装_Ubuntu/Debian上安装消息队列Mosquitto
Mosquitto安装_Ubuntu/Debian上安装消息队列Mosquitto MQTT是IBM开发的一个即时通讯协议.MQTT是面向M2M和物联网的连接协议,采用轻量级发布和订阅消息传输机制.M ...
- mosquitto在Linux环境下的部署/安装/使用/测试
mosquitto在Linux环境下的部署 看了有三四天的的源码,(当然没怎么好好看了),突然发现对mosquitto的源码有了一点点感觉,于是在第五天决定在Linux环境下部署mosquitto. ...
- Windows环境下安装配置Mosquitto服务及入门操作介绍
关键字:在windows安装mosquitto,在mosquitto中配置日志,在mosquitto中配置用户账号密码 关于Mosquitto配置的资料网上还是有几篇的,但是看来看去,基本上都是基于L ...
- 安装Mosquitto学习MOTT协议
1.源码的获取:http://mosquitto.org/files/source/ 2.直接解压tar文件,就可以得到所有的源码,里面有个配置文件config.mk,这个文件包含了Mosquitto ...
随机推荐
- Python利用pandas拆分大型的csv文件
当将大型CSV文件拆分成较小的文件时,您可以使用Python的Pandas库来处理 导入必要的库 import pandas as pd 定义拆分函数 当定义拆分函数时,我们将在以下步骤中处理CSV文 ...
- c# webBrowser中操作网页元素全攻略
1.获取非input控件的值: webBrowser1.Document.All["控件ID"].InnerText; 或webBrowser1.Document.GetEleme ...
- Shell脚本关闭Nginx进程
[root@testapp ~]# ps -ef | grep nginx root 25265 25216 0 09:22 pts/0 00:00:00 grep --color=auto ngin ...
- KingbaseES 原生XML系列四--XML通用函数
KingbaseES 原生XML系列四--XML通用函数(XMLAGG,XMLCOMMENT,XMLCONCAT,XMLELEMENT,XMLFOREST,XMLPI,XMLROOT,XMLSEQUE ...
- KingbaseES PLSQL 支持语句级回滚
KingbaseES默认如果在PLSQL-block 执行过程中的任何SQL 语句导致错误,都会导致该事务的所有语句都被回滚,而Oracle 则是语句级的回滚.KingbaseES 为了更好的与 Or ...
- Java面试题【4】
28)Java 栈和堆的区别 1 栈:为编译器自动分配和释放,如函数参数.局部变量.临时变量等等 2 堆:为成员分配和释放,由程序员自己申请.自己释放.否则发生内存泄露.典型为使用new申请的堆内容. ...
- #分治 or 线段树+单调栈#CF526F Pudding Monsters
题目 给定一个 \(n \times n\) 的棋盘,其中有 \(n\) 个棋子,每行每列恰好有一个棋子. 求有多少个 \(k \times k\) 的子棋盘中恰好有 \(k\) 个棋子. 分析 先将 ...
- #dp,高精度#洛谷 4295 [SCOI2003]严格N元树
题目 求有多少棵严格 \(n\) 叉树深度为 \(k\) 分析 考虑往下放子孙挺难维护的,考虑在上面换新的根. 设 \(dp[i]\) 表示深度不超过 \(i\) 的方案数,那么 \(dp[i]=dp ...
- CentOS 9 x64 使用 Nginx、Supervisor 部署 Go/Golang 服务
前言 在 CentOS 9 x64 系统上,可以通过以下步骤来部署 Golang 服务. 1. 安装必要的软件包 安装以下软件包: Golang:Golang 编程语言 Nginx:Web 服务器 S ...
- ionic 4 app 自动版本更新
前言 介绍一下ionic4 app的自动更新.ionic 不多介绍了,后面一个后系列,背负着骂名的ionic其实还是可以的,如果刚入门ionic可能觉得很坑,但是呢,往后你就发现另外一件事,那就是其他 ...