当前位置:   article > 正文

linux下搭建MQTT服务_linux安装mqtt

linux安装mqtt

目录

前言

一、MQTT协议

二、搭建MQTT服务

2.1 下载依赖库

2.2 下载mosquitto源码

2.3 编译与安装

2.4 配置

2.4.1 使能mosquitto用户

2.4.2 新增mosquitto帐号

2.4.3 创建动态链接装载程序

2.5 启动mosquitto

 三、订阅与发布

3.1 订阅主题

3.2 发布消息

 总结


前言

        MQTT是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议。它最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。

本次测试软硬件环境环境如下:

服务器:树莓派3B linux-4.9

客户端:Ubuntu 18.04.4 LTS


一、MQTT协议

MQTT协议用于客户端和服务器端通讯,MQTT协议中有三种身份:
发布者(Publish)
代理(Broker)
订阅者(Subscribe)

它们的对应关系如下表:

使用者身份类型备注
服务器代理
客户端发布者、订阅者消息发布者可以同时是订阅者

对应关系图如下:

 

MQTT传输的消息分为:
主题:消息的类型,订阅者订阅后,就可以收到该主题的消息内容(负载);
负载:消息的内容,是指订阅者具体要使用的内容。

关于MQTT协议详细的介绍可查看官网:https://mqtt.org/

二、搭建MQTT服务

2.1 下载依赖库

  1. sudo apt-get install libssl-dev
  2. sudo apt-get install uuid-dev
  3. sudo apt-get install cmake

2.2 下载mosquitto源码

打开链接https://mosquitto.org/files/source/,定位到mosquitto-1.6.9.tar.gz,下载到本地并解压。

tar -zxvf mosquitto-1.6.9.tar.gz -C /home/pi/

2.3 编译与安装

  1. cd /home/pi/mosquitto-1.6.9
  2. make
  3. sudo make install

2.4 配置

2.4.1 使能mosquitto用户

复制/etc/mosquitto/mosquitto.conf.example并重命名为/etc/mosquitto/mosquitto.conf。

cp /etc/mosquitto/mosquitto.conf.example /etc/mosquitto/mosquitto.conf

修改/etc/mosquitto/mosquitto.conf,使能mosquitto用户

  1. # /etc/mosquitto/mosquitto.conf
  2. user mosquitto

2.4.2 新增mosquitto帐号

adduser mosquitto

 如未正确配置2.4.1和2.4.2,启动mosquitto后会出现错误:

Error: Invalid user 'mosquitto'.

2.4.3 创建动态链接装载程序

启动订阅或发布时找不到动态库:libmosquitto.so.1,需要创建动态链接装载程序。

  1. sudo ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1
  2. sudo ldconfig

2.5 启动mosquitto

mosquitto -c /etc/mosquitto/mosquitto.conf -d

参数介绍:
-c:指定特定配置文件启动
-d:后台运行 

 三、订阅与发布

3.1 订阅主题

mosquitto_sub -h 192.168.1.103 -p 1883 -u daniel -P 123456 -t "test"

参数介绍:
-h:服务器主机,默认localhost
-t:指定主题
-u:用户名
-P:密码
-i:唯一的客户端ID

3.2 发布消息

mosquitto_pub -h localhost -p 1883 -u daniel -P 123456 -t "test" -m "hello"

参数介绍:
-h:服务器主机,默认localhost
-t:指定主题
-u:用户名
-P:密码
-i:唯一的客户端ID
-m 发布的消息内容

订阅和发布演示截图如下:


 总结

MQTT是一种轻量级的开放式消息传递协议,广泛的覆盖面,涵盖医疗保健、汽车和其他使用物联网应用,搭建MQTT只是我的物联网应用的第一步,后续将介绍移植MQTT到RK3568上实现温度数据监测功能。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/930683
推荐阅读
相关标签
  

闽ICP备14008679号