Javascript 让客户一直听,而不是只听一次
我在angularjs和node.js mqtt模块上运行了一个mqtt客户机。有一个简单的交换机,每当交换机状态更改时,它将在mqtt代理上发布主题 相关的html代码如下所示Javascript 让客户一直听,而不是只听一次,javascript,angularjs,node.js,mqtt,Javascript,Angularjs,Node.js,Mqtt,我在angularjs和node.js mqtt模块上运行了一个mqtt客户机。有一个简单的交换机,每当交换机状态更改时,它将在mqtt代理上发布主题 相关的html代码如下所示 <div ng-controller="SwitchCtrl"> <md-switch ng-model="switch_status.sw1" aria-label="SwitchCtrl" ng-change="onChange(switch_status.sw1)">
<div ng-controller="SwitchCtrl">
<md-switch ng-model="switch_status.sw1" aria-label="SwitchCtrl" ng-change="onChange(switch_status.sw1)">
Wireless Light Switch: {{ switch_status.sw1 }}
</md-switch>
</div>
我的问题是控制器代码只运行一次。我希望控制器中的这个代码段永远保持运行,以便客户机知道在订阅主题上发布的新消息
mqtt_client.on("message", function(topic, payload) {
console.log([topic, payload].join(": "));
mqtt_client.end();
});
如何使mqtt客户机始终侦听,而不是只侦听一次?注释掉结束mqtt_客户机连接的行。那就行了!这要归功于其中一位评论者floribon,他首先在自己的评论中给出了答案
mqtt_client.on("message", function(topic, payload) {
console.log([topic, payload].join(": "));
//mqtt_client.end();
});
为什么要使用mqtt_client.end;在你的听众中?保持它的活力,你会得到我认为的所有通知,尽管你让我觉得自己像个该死的傻瓜,但我并不熟悉你的建议:请提供它作为答案。这是正确的答案:
mqtt_client.on("message", function(topic, payload) {
console.log([topic, payload].join(": "));
//mqtt_client.end();
});