ubuntu - 如何在 mosquitto broker 的 bridg.conf 文件中提及 will 消息设置

标签 ubuntu mqtt mosquitto broker

我已经安装了mosquitto ubuntu 上的代理,配置为在 IP 上发送所有消息。

以下是bridge.conf文件内容:

connection local-ubuntu
log_type all
address 192.168.0.5:1883
remote_username admin
remote_password admin
remote_clientid dev
try_private false
cleansession false
start_type automatic
bridge_insecure false
bridge_protocol_version mqttv311
bridge_tls_version tlsv1.2
notifications false
keepalive_interval 36000
autosave_interval 30

topic # out 2 test/topic/ test/topic/
topic # in 2 test/topic/ test/topic/

我正在将所有数据发送到代理,并且它已成功将所有数据发布到提到的 IP 地址机器。

现在有时这台机器出现故障,因为从 MQTT 代理发送的消息在机器上没有收到并且丢失了。

我想在代理网桥中处理这种情况。我已经阅读过,如果我们指定将消息,那么它将保留所有未传递的消息,并在机器开启后传递它们。但我无法为此找到合适的配置。

有没有办法在这种情况下工作过。请帮忙。谢谢

最佳答案

我认为你在这里混淆了许多不同的东西。

首先,当客户端连接到代理时,客户端会设置最后的遗嘱和遗嘱消息,然后代理会卡在此消息上,并且仅在客户端连接中断时才发布它(如果客户端完全断开连接)。它对是否为该客户端排队的消息没有影响。无法为代理的网桥连接配置 LWT。

其次,不需要 2 topic用于配置桥接哪些主题的行,您可以将这两行替换为以下行:

topic # both 2 test/topic/ test/topic/

现在因为您将主题桥接的 QOS 设置为 2如果远程代理关闭,它应该已经在排队消息,一旦网桥恢复,它将转发这些消息。

如果您想查看网桥的当前状态,您可以订阅 $SYS/broker/connection/<remote_clientid>/state已设置 notifications true 的主题选项

此外,您的网桥保活值(10 小时)太高,无法做任何有用的事情。在 LAN 上,我会使用 10-30 秒之间的时间。

关于ubuntu - 如何在 mosquitto broker 的 bridg.conf 文件中提及 will 消息设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62302821/

相关文章:

node.js - 无法将 UTF-8 编码的字符串从 Android 发送到 Node.js

c++ - std::string 到 c 字符串的转换 mosquitto

php - ap_pass_brigade 在 handle_request_ipc 函数中失败

ubuntu - 如何从我的主机 (mac) 访问我的 Ubuntu 10.04 Virtualbox 的本地主机?

java - 我无法连接我的 java mqtt 客户端,总是收到无效的连接参数

c - 向 IOT 中心发布消息 - Eclypse Paho MQTT

MQTT 与 Mosquitto

ssl - 在 SSL 上运行的 mosquitto-clients 和 broker

linux - Exim4中增加smtp连接

Apache2 未安装/etc/apache2 ubuntu 12.04