首页 文章

Mosquitto没有发布SYS主题

提问于
浏览
5

我使用mosquitto服务器作为mqtt经纪人 . 我测试mosquitto的性能,我需要为某些数据订阅$ SYS层次结构,例如当前从 $SYS/broker/clients/active 主题连接的数量 . 我有以下mosquitto配置文件 .

# Place your local configuration in /etc/mosquitto/conf.d/
#
# A full description of the configuration file is at
# /usr/share/doc/mosquitto/examples/mosquitto.conf.example

pid_file /var/run/mosquitto.pid

persistence true
persistence_location /var/lib/mosquitto/

log_dest file /var/log/mosquitto/mosquitto.log

include_dir /etc/mosquitto/conf.d

listener 1884
protocol websockets

listener 1883

sys_interval 1

max_connections -1

我正在订阅像这样的 $SYS/broker/clients/active 主题

ubuntu@linux-box:/etc/mosquitto$ mosquitto_sub -d -t $SYS/broker/clients/active
Client mosqsub/28715-ip-172-31 sending CONNECT
Client mosqsub/28715-ip-172-31 received CONNACK
Client mosqsub/28715-ip-172-31 sending SUBSCRIBE (Mid: 1, Topic: /broker/clients/active, QoS: 0)
Client mosqsub/28715-ip-172-31 received SUBACK
Subscribed (mid: 1): 0

配置文件中的 sys_interval 为1,但我没有收到上述订阅的任何更新 . 我也试过这个订阅一些替代主题,但仍然没有收到任何东西 . Mosquitto服务器托管在具有Linux操作系统的AWS微实例上 .

1 回答

  • 12

    $SYS 被shell解释为环境变量,并且在mosquito_sub看到它之前被替换 . 您可以通过它在SUBSCRIBE日志语句中报告的主题字符串看到这种情况 .

    你应该在主题字符串周围加上引号:

    $ mosquitto_sub -d -t '$SYS/broker/clients/active'
    

相关问题