如何发现启用 MQTT 的局域网中的所有设备?

How to discover all devices in MQTT-enabled LAN?

在我的局域网中有几个支持 MQTT 的设备 (Tasmota),我正在编写一个 MQTT 客户端(Javascript,通过 mosquitto websocket 和 PAHO 客户端库)。

发现局域网内所有在线设备及其对应的设备名称的最佳方式是什么?我想使用每个设备发送的 LWT 消息,但我不知道如何订阅来自未知设备的所有 LWT 消息。

LWT“在线”消息通过此路径发送:tele/<device_name>/LWT,但我不想订阅所有“电话”消息,因为它们太多了。

您可以使用单级通配符主题。

例如

tele/+/LWT

这将为您提供所有以 tele 开头并以 LWT 结尾的主题,中间只有一个元素。