Node.js Azure nodejs sdk:队列消息侦听器的长轮询

Node.js Azure nodejs sdk:队列消息侦听器的长轮询,node.js,azure,queue,Node.js,Azure,Queue,是否可以创建一个消息侦听器,以便仅在消息可用时从服务总线队列(而不是存储队列)接收消息 实际上,我的实现包含一个调用receive操作的setInterval函数: var service = azure.createServiceBusService( azureEnpoint ); var repeat = function() { service.receiveQueueMessage(me.name, function (error, r

是否可以创建一个消息侦听器,以便仅在消息可用时从服务总线队列(而不是存储队列)接收消息

实际上,我的实现包含一个调用receive操作的setInterval函数:

var service = azure.createServiceBusService( azureEnpoint );    

var repeat = function() {
                    service.receiveQueueMessage(me.name, function (error, receivedMessage) {
                        if (!error) {
                            logger.debug(receivedMessage, "Received message from queue "+ me.name);
                            callback(error, receivedMessage);
                        }
                    });
                }


                setInterval(repeat, me.pollingInterval);

多亏了你,你使用了长时间的轮询来检查一条消息并等待很长时间的回复。好的一面是,你只需要为一个请求付费。将秒替换为等待响应的时间。最多24天

service.receiveQueueMessage(me.name, { timeoutIntervalInS: seconds },  
                                    function (error, receivedMessage)

这里有一个完整的例子:

不幸的是,Azure服务总线队列/主题订阅是拉式的。实际上,它似乎是。同样,有点。我一时记不起来是哪一个,但我看到的其中一个客户端会通过定期发送ping来保持连接打开。