Node.js 订阅服务器在mqtt中订阅主题时查找发布服务器id
我在nodejs支持的应用程序中使用mqtt,在该应用程序中可以与物联网设备进行通信,并且可以发布和订阅不同的主题。每件事情都很好,我可以发布和订阅不同的主题 我能够发送在消息部分发布主题的客户端id或发布者id,这是每个发布者的重复任务 在订阅主题时,我们是否可以知道谁是发布者。 我在nodejs的mqtt客户机代码是Node.js 订阅服务器在mqtt中订阅主题时查找发布服务器id,node.js,mqtt,publish-subscribe,Node.js,Mqtt,Publish Subscribe,我在nodejs支持的应用程序中使用mqtt,在该应用程序中可以与物联网设备进行通信,并且可以发布和订阅不同的主题。每件事情都很好,我可以发布和订阅不同的主题 我能够发送在消息部分发布主题的客户端id或发布者id,这是每个发布者的重复任务 在订阅主题时,我们是否可以知道谁是发布者。 我在nodejs的mqtt客户机代码是 var mqtt = require('mqtt') var url = "http://127.0.0.1:1883"; var client = 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
});
没有
这与发布/订阅消息的一个核心原则背道而驰,即发布者不应该关心谁订阅了给定的主题,订阅者不应该关心数据来自何处,它只订阅了一个主题
如果你想说清楚,你有两个选择
请详细说明我如何对出版商的主题进行编码。如果您这样做,我将不胜感激。类似于
status//open
和订阅status/+/open