热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【MQTT学习4】Mosquitto在树莓派安装

一、secureCRT工具中安装mosquitto前提条件:secureCRT连接树莓派或者自己的服务器;1、在http:mosquitto.orgf
一、secureCRT工具中安装mosquitto

前提条件:secureCRT连接树莓派或者自己的服务器;
1、在http://mosquitto.org/files/source/下载mosquitto源码,我选择的是1.6.9版本;
复制其链接地址
在这里插入图片描述
2、树莓派下下载:
在这里插入图片描述
3、解压压缩包

tar -xzvf mosquitto-1.6.9.tar.gz

在这里插入图片描述
4、进入目录

cd mosquitto-1.6.9/

在这里插入图片描述
5、在mosquitto文件夹下我们可以找到config.mk,这里包含了所有mosquitto的安装选项及参数说明,我们可以使用cat config.mk命令查看;
在这里插入图片描述
6、编译;
在这里插入图片描述
在这里插入图片描述
7、可能出现问题及解决方法:

  • 编译找不到openssl/ssl.h
    安装openssl
    sudo apt-get install libssl-dev

  • 编译过程g++命令未找到:
    sudo apt-get install g++

  • 编译过程找不到ares.h
    sudo apt-get install libc-ares-dev

  • 编译过程找不到uuid/uuid.h
    sudo apt-get install uuid-dev

  • 使用过程中找不到libmosquitto.so.1
    error while loading shared libraries: libmosquitto.so.1: cannot open shared object file: No such file or directory
    解决方法——修改libmosquitto.so位置:
    创建链接
    sudo ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1
    更新动态链接库
    sudo ldconfig
    参考:https://blog.csdn.net/xukai871105/article/details/39252653


二、配置&运行

安装完成之后,所有配置文件会被放到mosquitto目录下,其中最主要的是mosquitto的配置文件,即mosquitto.conf。
1、启动mosquitto服务;

mosquitto -c mosquitto.conf -v

2、关闭或重启;

ps -aux|grep mosquitto

3、用mosquitto进行一个简单的发布/订阅:

  • 3.1订阅主题:
    mosquitto_sub -v -t “主题”
    -v:打印更多的调试信息;
    -t:指定主题

  • 3.2 发布内容:
    mosquitto_pub -t"主题" -m"内容"
    -m:指定消息内容

  • 3.3需要同时打开三个服务器窗口:
    3.3.1开启一个客户端,模拟broker

mosquitto -c mosquitto.conf -v

此时运行mosquitto可能会报错:
参考:https://blog.csdn.net/wanxuexiang/article/details/86731863

liruiyan@cloud-ubuntu18:~/mqtt/mosquitto-1.6.9$ mosquitto -c mosquitto.conf -v
1625733997: mosquitto version 1.6.9 starting
1625733997: Config loaded from mosquitto.conf.
1625733997: Opening ipv4 listen socket on port 1883.
1625733997: Error: Address already in use

说明已经有一个mosquitto服务器在运行:address already in use
执行以下命令:

liruiyan@cloud-ubuntu18:~/mqtt/mosquitto-1.6.9$ ps -aux|grep mosquitto
liruiyan 17357 0.0 0.2 22812 4404 pts/2 S+ 16:20 0:00 mosquitto_sub -v -t topic1
mosquit+ 2240 0.2 0.0 34692 120 ? S 130 4:53 mosquitto -v
liruiyan@cloud-ubuntu18:~/mqtt/mosquitto-1.6.9$ kill -9 2240

就会使原来运行的服务器终止运行,再次启动运行:
在这里插入图片描述
3.3.2再开启一个客户端,模拟订阅

mosquitto_sub -v -t topic1

在这里插入图片描述
在模拟broker客户端中查看:
在这里插入图片描述
3.3.3在最后一个客户端模拟发布:
在这里插入图片描述
在模拟订阅客户端查看:
在这里插入图片描述
由上面的结果显示我们在订阅界面可以实时收到发布的消息;

三、mosquitto部分命令参数说明
  1. mosquitto_pub命令参数
    -d 打印debug信息
    -f 将指定文件的内容作为发送消息的内容
    -h 指定要连接的域名 默认为localhost
    -i 指定要给哪个cilentld的用户发送消息
    -l 指定给哪个clientld前缀的用户发送消息
    -m 消息内容
    -n 发送一个空(null)消息
    -p 连接端口号
    -q 指定QoS的值(0,1,2)
    -t 指定topic
    -u 指定broker访问用户
    -P指定broker 访问密码
    -V 指定MQTT协议版本
    –will-payload 指定一个消息,该消息当客户端与broker意外断开连接时发出。该参数需要与–will-topic一起使用
    –will-qos Will的QoS值。该参数需要与–will-topic一起使用
    –will-retain 指定Will消息被当做一个retain消息(即消息被广播后,该消息被保留起来)。该参数需要与–will-topic一起使用
    –will-topic 用户发送Will消息的topic。

  2. mosquitto_sub 命令参数说明
    -c 设定‘clean session’为无效状态,这样一直保持订阅状态,即便是已经失去连接,如果再次连接仍旧能够接收的断开期间发送的消息。
    -d 打印debug信息
    -h 指定要连接的域名 默认为localhost
    -i 指定clientld
    -l 指定clientld前缀
    -k keepalive 每隔一段时间,发PING消息通知broker,仍处于连接状态。 默认为60秒。
    -q 指定希望接收到QoS为什么的消息 默认QoS为0
    -R 不显示陈旧的消息
    -t 订阅topic
    -v 打印消息
    –will-payload 指定一个消息,该消息当客户端与broker意外断开连接时发出。该参数需要与–will-topic一起使用
    –will-qos Will的QoS值。该参数需要与–will-topic一起使用
    –will-retain 指定Will消息被当做一个retain消息(即消息被广播后,该消息被保留起来)。该参数需要与–will-topic一起使用
    –will-topic 用户发送Will消息的topic


推荐阅读
  • 在开发过程中,我最初也依赖于功能全面但操作繁琐的集成开发环境(IDE),如Borland Delphi 和 Microsoft Visual Studio。然而,随着对高效开发的追求,我逐渐转向了更加轻量级和灵活的工具组合。通过 CLIfe,我构建了一个高度定制化的开发环境,不仅提高了代码编写效率,还简化了项目管理流程。这一配置结合了多种强大的命令行工具和插件,使我在日常开发中能够更加得心应手。 ... [详细]
  • 本文详细介绍了如何在Linux系统(以CentOS为例)上彻底卸载Zimbra邮件系统,包括停止服务、删除文件和用户等步骤。 ... [详细]
  • 在 CentOS 6.4 上安装 QT5 并启动 Qt Creator 时,可能会遇到缺少 GLIBCXX_3.4.15 的问题。这是由于系统中的 libstdc++.so.6 版本过低。本文将详细介绍如何通过更新 GCC 版本来解决这一问题。 ... [详细]
  • 本文详细介绍了在 Ubuntu 系统上搭建 Hadoop 集群时遇到的 SSH 密钥认证问题及其解决方案。通过本文,读者可以了解如何在多台虚拟机之间实现无密码 SSH 登录,从而顺利启动 Hadoop 集群。 ... [详细]
  • 在 Ubuntu 中遇到 Samba 服务器故障时,尝试卸载并重新安装 Samba 发现配置文件未重新生成。本文介绍了解决该问题的方法。 ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • 在Linux系统中避免安装MySQL的简易指南
    在Linux系统中避免安装MySQL的简易指南 ... [详细]
  • SecureCRT是一款功能强大的终端仿真软件,支持SSH1和SSH2协议,适用于在Windows环境下高效连接和管理Linux服务器。该工具不仅提供了稳定的连接性能,还具备丰富的配置选项,能够满足不同用户的需求。通过SecureCRT,用户可以轻松实现对远程Linux系统的安全访问和操作。 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • 在Ubuntu系统中安装Android SDK的详细步骤及解决“Failed to fetch URL https://dlssl.google.com/”错误的方法
    在Ubuntu 11.10 x64系统中安装Android SDK的详细步骤,包括配置环境变量和解决“Failed to fetch URL https://dlssl.google.com/”错误的方法。本文详细介绍了如何在该系统上顺利安装并配置Android SDK,确保开发环境的稳定性和高效性。此外,还提供了解决网络连接问题的实用技巧,帮助用户克服常见的安装障碍。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • 对于希望在未越狱的iOS设备上修改Hosts文件的苹果用户来说,了解文件的具体位置和操作步骤至关重要。本文将详细介绍如何通过安装最新版本的iTunes来实现这一目标,并提供实用的操作指南,帮助用户轻松完成Hosts文件的编辑。 ... [详细]
  • 利用ZFS和Gluster实现分布式存储系统的高效迁移与应用
    本文探讨了在Ubuntu 18.04系统中利用ZFS和Gluster文件系统实现分布式存储系统的高效迁移与应用。通过详细的技术分析和实践案例,展示了这两种文件系统在数据迁移、高可用性和性能优化方面的优势,为分布式存储系统的部署和管理提供了宝贵的参考。 ... [详细]
  • 如何在Linux系统中实现Windows风格的桌面环境:将Ubuntu 18.04定制为Windows主题界面
    如果您是从Windows转到Linux系统的用户,可能会觉得默认的Ubuntu主题和桌面环境缺乏吸引力和可定制性。尤其是对于习惯了Windows风格的任务栏和主题的用户,Ubuntu 18.04的橙色主题可能显得过于简洁。为了提升用户体验,可以通过安装特定的桌面环境和主题来实现类似Windows的界面效果。本文将详细介绍如何在Ubuntu 18.04中配置和定制桌面环境,使其具备Windows风格的外观和功能。 ... [详细]
author-avatar
周天芷65486
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有