我在我的nodejs支持的应用程序中使用mqtt,其中有与iot设备的通信,并且我能够发布和订阅不同的主题。每件事都运行良好我可以发布和订阅不同的主题。
我能够发送客户ID或发布者ID,他们在消息部分发布主题,这是每个发布者的重复任务。
在订阅主题时,我们是否有任何方式可以知道谁是发布者。 我在nodejs的mqtt客户端代码是
var mqtt = require('mqtt')
var url = "http://127.0.0.1:1883";
var client = mqtt.connect(url);
client.on('connect', () => {
console.log('Mqtt client connected to broker');
client.subscribe('status/open');
client.subscribe('status/close');
client.subscribe('sendMsg');
})
client.on('message', (topic, message) => {
console.log('new topic received at controller', topic);
console.log('new messge received at controller', message.toString());
///is there any way to determine who is publishere here
});
答案 0 :(得分:0)
没有
这违反了发布/订阅消息传递的核心原则之一,即发布者不应该关心订阅某个主题的用户,订阅者也不应该关心数据的来源,它只是订阅了一个主题。
如果你想说清楚,你有两个选择。