我有两台机器,正在测试带有 Sparkplug B 有效负载的 MQTT 桥连接。
我的桥梁按预期工作,但是当我模拟下图中注释的一些故障点时,事情没有按预期工作。我的期望是当图像中的三个点中的任何一个断开连接时,机器 B 上的代理上会出现 NDEATH。
当我杀死机器 A 上的发布者或本地 MQTT 代理时,我确实在订阅机器 B MQTT 代理时看到了预期的 NDEATH,但是当我拔出机器 A 和 B 之间的插头时,如图中的 #3 所示,我没有看到一个NDEATH!我已经等了很长时间,以确保 60 秒保持活动有足够的时间做出反应,据我所知,这通常是保持活动的 1.5 倍。
机器 A 上的发布者和代理继续运行,当第 3 点的连接重新联机时,所有消息都已传递,但我期待在桥连接断开时,任何已发布最后遗嘱和遗嘱的节点(LWT ) 会因为任何时候的连接丢失而看到 NDEATH。
我已经用 mosquitto、vernemq 和一些 hive-ce 进行了测试,但是 hive-ce 在功能上受到严重限制。我对 MQTT 桥接的理解是否遗漏了什么?不应该在所有三种情况下都发送 NDEATH 吗?