• mqtt mosquitto 源码安装


    下载地址

    ububtu  :

    wget https://codeload.github.com/eclipse/mosquitto/zip/master

    安装依赖

    sudo apt-get install openssl 
    sudo apt-get install libssl-dev
    sudo apt-get install openssl
    sudo apt-get install uuid-dev
    sudo apt-get install docbook-xsl

    新建用户

    Useradd mosquitto
    Passwd mosquitto

     切换目录/修改配置文件

    cd /etc/mosquitto/
     Sudo mv mosquitto.conf.example mosquitto.conf

    测试

    mosquitto_sub -t "mqtt"
    mosquitto_pub  -h 47.100.210.119 -t "mqtt" -m "test"

    订阅/发布参数说明

    mosquitto_pub 命令参数说明
    
    1. -d  打印debug信息
    2. -f  将指定文件的内容作为发送消息的内容
    3. -h  指定要连接的域名  默认为localhost
    4. -i  指定要给哪个clientId的用户发送消息
    5. -I  指定给哪个clientId前缀的用户发送消息
    6. -m  消息内容
    7. -n  发送一个空(null)消息
    8. -p  连接端口号
    9. -q  指定QoS的值(0,1,210. -t  指定topic
    11. -u  指定broker访问用户
    12. -P  指定broker访问密码
    13. -V  指定MQTT协议版本
    14. --will-payload  指定一个消息,该消息当客户端与broker意外断开连接时发出。该参数需要与--will-topic一起使用
    15. --will-qos  Will的QoS值。该参数需要与--will-topic一起使用
    16. --will-retain 指定Will消息被当做一个retain消息(即消息被广播后,该消息被保留起来)。该参数需要与--will-topic一起使用
    17. --will-topic  用户发送Will消息的topic
    
    
    
    mosquitto_sub 命令参数说明
    
    1. -c  设定‘clean session’为无效状态,这样一直保持订阅状态,即便是已经失去连接,如果再次连接仍旧能够接收的断开期间发送的消息。
    2. -d  打印debug信息
    3. -h  指定要连接的域名  默认为localhost
    4. -i 指定clientId
    5. -I 指定clientId前缀
    6. -k keepalive 每隔一段时间,发PING消息通知broker,仍处于连接状态。 默认为60秒。
    7. -q 指定希望接收到QoS为什么的消息  默认QoS为0
    8. -R 不显示陈旧的消息
    9. -t 订阅topic
    10. -v 打印消息
    11. --will-payload  指定一个消息,该消息当客户端与broker意外断开连接时发出。该参数需要与--will-topic一起使用
    12. --will-qos  Will的QoS值。该参数需要与--will-topic一起使用
    13. --will-retain 指定Will消息被当做一个retain消息(即消息被广播后,该消息被保留起来)。该参数需要与--will-topic一起使用
    14. --will-topic  用户发送Will消息的topic

    配置文件详情

    .# =================================================================
    .# General configuration
    .# =================================================================
    .
    .# 客户端心跳的间隔时间
    .#retry_interval 20
    .
    .# 系统状态的刷新时间
    .#sys_interval 10
    .
    .# 系统资源的回收时间,0表示尽快处理
    .#store_clean_interval 10
    .
    .# 服务进程的PID
    .#pid_file /var/run/mosquitto.pid
    .
    .# 服务进程的系统用户
    .#user mosquitto
    .
    .# 客户端心跳消息的最大并发数
    .#max_inflight_messages 10
    .
    .# 客户端心跳消息缓存队列
    .#max_queued_messages 100
    .
    .# 用于设置客户端长连接的过期时间,默认永不过期
    .#persistent_client_expiration
    .
    .# =================================================================
    .# Default listener
    .# =================================================================
    .
    .# 服务绑定的IP地址
    .#bind_address
    .
    .# 服务绑定的端口号
    .#port 1883
    .
    .# 允许的最大连接数,-1表示没有限制
    .#max_connections -1
    .
    .# cafile:CA证书文件
    .# capath:CA证书目录
    .# certfile:PEM证书文件
    .# keyfile:PEM密钥文件
    .#cafile
    .#capath
    .#certfile
    .#keyfile
    .
    .# 必须提供证书以保证数据安全性
    .#require_certificate false
    .
    .# 若require_certificate值为true,use_identity_as_username也必须为true
    .#use_identity_as_username false
    .
    .# 启用PSK(Pre-shared-key)支持
    .#psk_hint
    .
    .# SSL/TSL加密算法,可以使用“openssl ciphers”命令获取
    .# as the output of that command.
    .#ciphers
    .
    .# =================================================================
    .# Persistence
    .# =================================================================
    .
    .# 消息自动保存的间隔时间
    .#autosave_interval 1800
    .
    .# 消息自动保存功能的开关
    .#autosave_on_changes false
    .
    .# 持久化功能的开关
    .persistence true
    .
    .# 持久化DB文件
    .#persistence_file mosquitto.db
    .
    .# 持久化DB文件目录
    .#persistence_location /var/lib/mosquitto/
    .
    .# =================================================================
    .# Logging
    .# =================================================================
    .
    .# 4种日志模式:stdout、stderr、syslog、topic
    .# none 则表示不记日志,此配置可以提升些许性能
    .log_dest none
    .
    .# 选择日志的级别(可设置多项)
    .#log_type error
    .#log_type warning
    .#log_type notice
    .#log_type information
    .
    .# 是否记录客户端连接信息
    .#connection_messages true
    .
    .# 是否记录日志时间
    .#log_timestamp true
    .
    .# =================================================================
    .# Security
    .# =================================================================
    .
    .# 客户端ID的前缀限制,可用于保证安全性
    .#clientid_prefixes
    .
    .# 允许匿名用户
    .#allow_anonymous true
    .
    .# 用户/密码文件,默认格式:username:password
    .#password_file
    .
    .# PSK格式密码文件,默认格式:identity:key
    .#psk_file
    .
    .# pattern write sensor/%u/data
    .# ACL权限配置,常用语法如下:
    .# 用户限制:user <username>
    .# 话题限制:topic [read|write] <topic>
    .# 正则限制:pattern write sensor/%u/data
    .#acl_file
    .
    .# =================================================================
    .# Bridges
    .# =================================================================
    .
    .# 允许服务之间使用“桥接”模式(可用于分布式部署)
    .#connection <name>
    .#address <host>[:<port>]
    .#topic <topic> [[[out | in | both] qos-level] local-prefix remote-prefix]
    .
    .# 设置桥接的客户端ID
    .#clientid
    .
    .# 桥接断开时,是否清除远程服务器中的消息
    .#cleansession false
    .
    .# 是否发布桥接的状态信息
    .#notifications true
    .
    .# 设置桥接模式下,消息将会发布到的话题地址
    .# $SYS/broker/connection/<clientid>/state
    .#notification_topic
    .
    .# 设置桥接的keepalive数值
    .#keepalive_interval 60
    .
    .# 桥接模式,目前有三种:automatic、lazy、once
    .#start_type automatic
    .
    .# 桥接模式automatic的超时时间
    .#restart_timeout 30
    .
    .# 桥接模式lazy的超时时间
    .#idle_timeout 60
    .
    .# 桥接客户端的用户名
    .#username
    .
    .# 桥接客户端的密码
    .#password
    .
    .# bridge_cafile:桥接客户端的CA证书文件
    .# bridge_capath:桥接客户端的CA证书目录
    .# bridge_certfile:桥接客户端的PEM证书文件
    .# bridge_keyfile:桥接客户端的PEM密钥文件
    .#bridge_cafile
    .#bridge_capath
    .#bridge_certfile
    .#bridge_keyfile
    .
    .# 自己的配置可以放到以下目录中
    .include_dir /etc/mosquitto/conf.d
    测试
  • 相关阅读:
    jsp类的封装集合的应用及servlet的引入和JSTL的引入
    jsp学习1
    小型世界关系图的交互可视化(未完成)
    c++产生随机数问题
    socket error
    opengl空间画圆柱体
    socket连接服务器立即返回,不用三次握手
    win7电脑分无线网,简称热点
    设置ipv6全球地址和默认网关
    网线制作,水晶头里的线顺序
  • 原文地址:https://www.cnblogs.com/tsxylhs/p/10043834.html
Copyright © 2020-2023  润新知