一款实现了消息推送协议 MQTT v3.1 的开源消息代理软件,提供轻量级的,支持可发布/可订阅的的消息推送模式,使设备对设备之间的短消息通信变得简单,比如现在应用广泛的低功耗传感器,手机、嵌入式计算机、微型控制器等移动设备。一个典型的应用案例就是 Andy Stanford-ClarkMosquitto(MQTT协议创始人之一)在家中实现的远程监控和自动化。并在 OggCamp 的演讲上,对MQTT协议进行详细阐述。

一、准备材料

安装包:openssl、JSON-C、mosquitto

安装环境:ubuntu20.04

二、MQTT协议

MQTT每个版本之间存在一定的差异,需要了解相关信息的请参考相关协议说明

MQTT中文网:http://mqtt.p2hp.com/

三、下载源码

  1. openssl下载

    openssl官网:https://www.openssl.org/

    openssl源码下载



  2. mosquitto下载

    mosquitto官网:http://mosquitto.org/

    mosquitto源码下载





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

  3. json-c下载

    通过git获取json-c源码
git clone https://github.com/DaveGamble/cJSON

四、mosquitto安装

  安装方式有两种,分为指令安装和源码安装,可以根据自己的需要选择相应的安装方式

  1. 源码安装

    了解源码的安装主要是方便后面学习移植,先将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
  1. 指令安装
sudo apt-get install mosquitto

sudo apt-get install mosquitto-clients

五、mosquitto使用

  测试mosquitto至少需要打开3个命令窗口。

  1. 启动服务端(代理服务器)
mosquitto -c /etc/mosquitto/mosquitto.conf.example



2. 启动订阅端(订阅者)

mosquitto_sub -t temp



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



3. 发布消息(发布者)

mosquitto_pub -t temp -m hello_world



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

问题处理

  1. mosquitto_sub: error while loading shared libraries: libmosquitto.so.1: cannot open shared object file: No such file or directory



    解决办法:
sudo ldconfig
  1. 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的安装与使用的更多相关文章

  1. Centos7-mqtt消息中间件mosquitto的安装和配置

    在以前发布的博客"菜鸟是如何打造智能家居系统的"文章最后我提到了使用MQTT协议作为云平台和设备之间的通信协议以达到消息传递的实时性,手机的消息推送也大多基于这种平台,首先搬来一段 ...

  2. mosquitto centos安装配置

    周末弄wordpress的Mysql,一不小心把wordpress弄不好了,写了的好几遍文章也没有了,一怒之下,把整个系统重装了,安装了不带任何软件的新系统,重新搭一遍. 0.安装ftp服务器 #yu ...

  3. 一、Mosquitto 介绍&安装

    一.Mosquitto 介绍 一款实现了消息推送协议 MQTT v3.1 的开源消息代理软件,提供轻量级的,支持可发布/可订阅的的消息推送模式,使设备对设备之间的短消息通信变得简单,比如现在应用广泛的 ...

  4. mosquitto broker 安装服务后启动失败

    一.失败原因 由于做项目用到Mqtt协议,需要安装mosquitto broker 服务,在自己本地笔记本电脑安装后直接启动服务是可以的.后来部署到服务器启动,报错缺少msvcr100.dll ,由于 ...

  5. 【MQTT】Mosquitto的安装与使用流水记

    最近使用MQTT,安装Mosquitto试一下,并记录下来. 软件准备 从官网获取安装包: wget http://mosquitto.org/files/source/mosquitto-1.4.1 ...

  6. MQTT消息中间件Mosquitto的安装和配置

    特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...

  7. Mosquitto安装_Ubuntu/Debian上安装消息队列Mosquitto

    Mosquitto安装_Ubuntu/Debian上安装消息队列Mosquitto MQTT是IBM开发的一个即时通讯协议.MQTT是面向M2M和物联网的连接协议,采用轻量级发布和订阅消息传输机制.M ...

  8. mosquitto在Linux环境下的部署/安装/使用/测试

    mosquitto在Linux环境下的部署 看了有三四天的的源码,(当然没怎么好好看了),突然发现对mosquitto的源码有了一点点感觉,于是在第五天决定在Linux环境下部署mosquitto. ...

  9. Windows环境下安装配置Mosquitto服务及入门操作介绍

    关键字:在windows安装mosquitto,在mosquitto中配置日志,在mosquitto中配置用户账号密码 关于Mosquitto配置的资料网上还是有几篇的,但是看来看去,基本上都是基于L ...

  10. 安装Mosquitto学习MOTT协议

    1.源码的获取:http://mosquitto.org/files/source/ 2.直接解压tar文件,就可以得到所有的源码,里面有个配置文件config.mk,这个文件包含了Mosquitto ...

随机推荐

  1. 记一起rust悬垂引用解决

    最初要写一段从redis的hash获取json字符串,转化为结构体,代码逻辑如下 use redis::{Client, Commands, Connection, Iter}; use serde: ...

  2. SpringCloud微服务集成Dubbo

    1.Dubbo介绍 Apache Dubbo 是一款易用.高性能的 WEB 和 RPC 框架,同时为构建企业级微服务提供服务发现.流量治理.可观测.认证鉴权等能力.工具与最佳实践.用于解决微服务架构下 ...

  3. archlinux调整分区及ext4文件系统大小

    参照 https://wiki.archlinuxcn.org/wiki/Parted 1.防止数据丢失 有重要数据的话先备份,防止系统崩了数据没了 可以的话先在虚拟机练习一下 2.注意点 修改分区的 ...

  4. #构造,黑白染色#AT4378 [AGC027D] Modulo Matrix

    题目 构造一个 \(n*n(n\leq 500)\) 的矩阵,满足元素均为正整数,不超过 \(10^15\) 且互不相同, 并且相邻两数若较大的为 \(x\),较小的为 \(y\),那么任意相邻两数 ...

  5. #贪心#洛谷 3173 [HAOI2009]巧克力

    题目 分析 既然每一刀都要切,那肯定代价越大的要越早切, 考虑按代价降序排序,如果切了一行,求切列的时候贡献的行数就多了1. 代码 #include <cstdio> #include & ...

  6. 你知道什么叫做API、SDK吗?

    链接:https://www.zhihu.com/question/21691705/answer/770586138 API.SDK是什么......... 讲个小故事: 研发人员A开发了软件A,研 ...

  7. openGauss3.1.0 版本的gs_stack功能解密

    openGauss3.1.0 版本的 gs_stack 功能解密 不管是测试还是研发,工作中总有遇到各种各样的问题.比如,你有没有遇到过在数据库中执行某个 SQL,却一直不返回结果,这时候的你是不是非 ...

  8. HarmonyOS数据管理与应用数据持久化(一)

      一. 数据管理概述 功能介绍 数据管理为开发者提供数据存储.数据管理能力,比如联系人应用数据可以保存到数据库中,提供数据库的安全.可靠等管理机制. ● 数据存储:提供通用数据持久化能力,根据数据特 ...

  9. 外屏和宽屏浪费了?HarmonyOS折叠屏设计规范教你用起来

    原文:https://mp.weixin.qq.com/s/7_mdRom7sCA3Z65ih6W3xw,点击链接查看更多技术内容. 这几年折叠屏手机很火,我们针对使用HarmonyOS的折叠屏手机提 ...

  10. Pytorch-卷积神经网络CNN之lenet5的Pytorch代码实现

    先说一个小知识,助于理解代码中各个层之间维度是怎么变换的. 卷积函数:一般只用来改变输入数据的维度,例如3维到16维. Conv2d() Conv2d(in_channels:int,out_chan ...