学习笔记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
[参考资料]
本文链接: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 基础安装使用的主要内容,如果未能解决你的问题,请参考以下文章