Node.js Mosca连续发送多条消息

Node.js Mosca连续发送多条消息,node.js,mosca,Node.js,Mosca,我已经安装了一个节点js服务器,上面运行着Mosca。客户端可以连接到Mosca服务器并发布消息。我需要以消息(订阅某个主题)的形式将确认发送回客户端 客户端发布消息后,下面的代码将连续发送多条消息。我遗漏了什么吗 var settings = { port: 1882, backend: ascoltatore }; var message = { topic: 'crofters', payload: 'OK', // or a Buffer qos

我已经安装了一个节点js服务器,上面运行着Mosca。客户端可以连接到Mosca服务器并发布消息。我需要以消息(订阅某个主题)的形式将确认发送回客户端

客户端发布消息后,下面的代码将连续发送多条消息。我遗漏了什么吗

 var settings = {
    port: 1882,
    backend: ascoltatore
 };

 var message = {
   topic: 'crofters',
   payload: 'OK', // or a Buffer
   qos: 2

 };

 var server = new mosca.Server(settings);

 server.on('clientConnected', function(client) {
       console.log('client connected', client.id);


   });

   // fired when a message is received
server.on('published', function(packet, client ) {


    var packet_payload = packet.payload;
    packet_payload = packet_payload.toString();
    console.log('Published', packet_payload);

    server.publish(message, function() {
        console.log('done!');
    });


});

server.on('ready', setup);

function setup() {
   console.log('Mosca server is up and running');
}

我一直面临着类似的问题。如果您注意到,Mosca只有QoS 0和QoS 1


因此,我假设代理尝试多次“至少一次”发送同一消息,直到收到客户机的确认。看看这个

我一直面临着类似的问题。如果您注意到,Mosca只有QoS 0和QoS 1


因此,我假设代理尝试多次“至少一次”发送同一消息,直到收到客户机的确认。检查这个

事件侦听器
服务器。在('published',函数(packet,client){…}
侦听每个发布事件,包括服务器的事件

发生的情况是,当您在该侦听器中使用
server.publish(message,function(){…})
时,它会触发另一个published事件,侦听器会立即捕获该事件


它从不停止发布,因为它从不停止捕获自己的事件。

事件侦听器
server.on('published',function(packet,client){…}
侦听每个发布事件,包括服务器的事件

发生的情况是,当您在该侦听器中使用
server.publish(message,function(){…})
时,它会触发另一个published事件,侦听器会立即捕获该事件

它从不停止发布,因为它从不停止捕捉自己的事件