学习笔记Mosquitto 基础安装使用

Posted dadalaohua

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习笔记Mosquitto 基础安装使用相关的知识,希望对你有一定的参考价值。

【学习笔记】Mosquitto 基础安装与使用

简介

记录学习 Mosquitto 基础安装与使用的一些内容。

Mosquitto 是一个开源 MQTT 代理,官网的简介如下:

Eclipse Mosquitto是一个开源的(EPL/EDL 许可)消息代理,实现了MQTT的 5.0、3.1.1 和 3.1 版本。Mosquitto是轻量级的,适用于从低功耗的单板计算机到完整服务器的所有设备上使用。

MQTT协议提供了一种使用发布/订阅模型执行消息传递的轻量级方法。这使得它适合于物联网信息传递,例如使用低功率传感器或移动设备,如手机、嵌入式计算机或微控制器。

Mosquitto项目还提供了一个用于实现MQTT客户端的C库,以及非常流行的 Mosquitto_pub 和 Mosquitto_sub 命令行MQTT客户端。

下载

官网地址:https://mosquitto.org/

下载地址:https://mosquitto.org/download/

github 地址:https://github.com/eclipse/mosquitto

安装

使用树莓派平台下载源码mosquitto-2.0.15.tar.gz

mosquitto-2.0.15.tar.gz文件解压:

pi@raspberrypi:~/Desktop/mqtt $ tar -zxvf mosquitto-2.0.15.tar.gz 

直接make编译:

pi@raspberrypi:~/Desktop/mqtt/mosquitto-2.0.15 $ make

如果出现错误,缺少 cjson 库:

cc db_dump.o print.o memory_mosq.o memory_public.o packet_datatypes.o packet_mosq.o persist_read.o persist_read_v234.o persist_read_v5.o property_mosq.o send_disconnect.o stubs.o time_mosq.o topic_tok.o utf8_mosq.o -o mosquitto_db_dump  
make[2]: 离开目录“/home/pi/Desktop/mqtt/mosquitto-2.0.15/apps/db_dump”
make[2]: 进入目录“/home/pi/Desktop/mqtt/mosquitto-2.0.15/apps/mosquitto_ctrl”
cc -I../mosquitto_passwd -DWITH_CJSON  -I. -I../../ -I../../include -I../../src -I../../lib -DWITH_TLS -Wall -ggdb -O2 -Wconversion -Wextra -DVERSION=\\""2.0.15\\"" -c mosquitto_ctrl.c -o mosquitto_ctrl.o
In file included from mosquitto_ctrl.c:19:
../../config.h:86:12: fatal error: cjson/cJSON.h: 没有那个文件或目录
 #  include <cjson/cJSON.h>
            ^~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [Makefile:51:mosquitto_ctrl.o] 错误 1
make[2]: 离开目录“/home/pi/Desktop/mqtt/mosquitto-2.0.15/apps/mosquitto_ctrl”
make[1]: *** [Makefile:9:all] 错误 2
make[1]: 离开目录“/home/pi/Desktop/mqtt/mosquitto-2.0.15/apps”
make: *** [Makefile:66:mosquitto] 错误 2

则需先安装下 cjson,github 地址:https://github.com/DaveGamble/cJSON

pi@raspberrypi:~/Desktop/mqtt $ git clone https://github.com/DaveGamble/cJSON.git
正克隆到 'cJSON'...
remote: Enumerating objects: 4545, done.
remote: Total 4545 (delta 0), reused 0 (delta 0), pack-reused 4545
接收对象中: 100% (4545/4545), 2.45 MiB | 40.00 KiB/s, 完成.
处理 delta 中: 100% (3026/3026), 完成.
pi@raspberrypi:~/Desktop/mqtt $ cd cJSON/
pi@raspberrypi:~/Desktop/mqtt/cJSON $ make
pi@raspberrypi:~/Desktop/mqtt/cJSON $ sudo make install

编译好之后,执行make install命令安装编译后的软件到系统中。

pi@raspberrypi:~/Desktop/mqtt/mosquitto-2.0.15 $ sudo make install 

测试

先运行 Mosquitto 的 MQTT 代理程序:

pi@raspberrypi:~/Desktop/mqtt/mosquitto-2.0.15 $ mosquitto
1679985796: mosquitto version 2.0.15 starting
1679985796: Using default config.
1679985796: Starting in local only mode. Connections will only be possible from clients running on this machine.
1679985796: Create a configuration file which defines a listener to allow remote access.
1679985796: For more details see https://mosquitto.org/documentation/authentication-methods/
1679985796: Opening ipv4 listen socket on port 1883.
1679985796: Opening ipv6 listen socket on port 1883.
1679985796: mosquitto version 2.0.15 running

然后运行 Mosquitto 的 MQTT 订阅主题的客户端程序 mosquitto_sub:

pi@raspberrypi:~ $ mosquitto_sub -t 'test' -v

其中-t表示订阅主题(topic),这里的主题为test-v表示打印消息。

如果出现如下问题找不到动态库:

pi@raspberrypi:~ $ mosquitto_sub -t 'test' -v
mosquitto_sub: error while loading shared libraries: libmosquitto.so.1: cannot open shared object file: No such file or directory

则执行命令创建一个软链接:

pi@raspberrypi:~ $ sudo ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1

接着再运行 Mosquitto 的 MQTT 发布消息的客户端程序 mosquitto_pub 发布消息:

pi@raspberrypi:~ $ mosquitto_pub -t 'test' -m 'hello'

其中-t表示指定的主题(topic),这里要发布到主题test-m表示要发布的消息内容hello

然后在订阅主题的客户端就能看到如下消息:

test hello

[参考资料]

Eclipse Mosquitto

Download


本文链接:https://blog.csdn.net/u012028275/article/details/129818526

9.Arduino基础入门— 如何在Windows上安装Mosquitto MQTT Broker

首先必须了解Mosquitto是什么,是支持MQTT的消息中间件。可以理解是MQTT的消息服务。

在Windows上安装Mosquitto Broker

注:MQTT版本3.1.1开始采用的术语服务器而不是代理。

有两种可能性:

  • 快速安装
  • 标准安装

下载Windows安装包

http://mosquitto.org/download/

技术图片

 

 

 

Windows Notes上的Websocket

从mosquitto 1.5.1开始,已在Windows二进制文件上启用了websockets支持。

但是,当您启动mosquitto时使用1.5.1。,1.52和1.53时,它似乎正在监听websocket端口,但不允许连接。

mosquitto v 1.5.4及更高版本可用于websockets。

 

安装步骤

1.双击安装脚本

2.注意依赖项屏幕,该屏幕告诉您还需要哪些其他文件。屏幕说明很清晰技术图片

3.选择组件检查服务以作为服务安装。

技术图片

4.选择一个默认位置为c:\\ program files \\ mosquitto的位置。

5.完成

6.注意:完成后会注册一个mosquitto 的windows服务。

技术图片

 

 

 这个windows服务的作用是以前替代下述手工命令行启动代理服务

打开cmd命令窗口,输入mosquitto -d -v启动代理端

技术图片

有了windows服务,以后就不用手工启动代理端了,但是注意:这里服务安装完后是需要手工启动的,启动还是默认的1883端口

 

 

好,启动了MQTT的代理端了,下步准备做两件事情,发布一个订阅,其次是针对订阅发布消息,再查看订阅端是否有接收到消息。

 

打开一命令窗口,输入mosquitto_sub -d -v -t test订阅主题为test的消息

技术图片

 

 

 

再次打开一命令窗口,输入mosquitto_pub -d -t test -m hellomqtt发布一条主题为test,消息内容为hellomqtt的消息

技术图片

 

 

 

发布消息后再次回到订阅端查看

技术图片

 

 看到订阅端已经收到消息了。

 

 

 

以上是关于学习笔记Mosquitto 基础安装使用的主要内容,如果未能解决你的问题,请参考以下文章

安全牛学习笔记CCNA简介

STM32F103学习笔记——4G模块EC200S使用

AWS学习笔记

大数据学习笔记~linux基础篇

AWS学习笔记--CLI创建EC2时执行脚本

Hadoop学习笔记—15.HBase框架学习(基础实践篇)