簡體   English   中英

如何在Node.js中異步接收Azure服務總線消息

[英]How to asynchronously receive a azure service bus message in node.js

我在node.js中有socket.io,在.net中有我的工作人員角色。 我正在將服務總線隊列消息從socket.io發送到工作人員角色,而在工作人員角色中,我正在做一些處理,並通過服務總線隊列將數據發送回socket.io。

但是我認為有時候socket.io會嘗試接收比工作角色可發送的消息早一些的服務總線隊列消息,因此,即使工作角色已發送了消息,socket.io也不會收到消息。

下面是我的代碼:

function requestQueue(channelName) {

sleepTime[channelName] = 0;    

console.log("-------------------SEND to WORKER ROLE------------------------");

// send the request to worker role
var broadcastMessage = "somedata";    

sendMessage(socketToWorkerRole, broadcastMessage)

receivePeriodicRecordsQueue(workerRoleToSocket, channelName);
}

//發送服務總線隊列消息

function sendMessage(queue, data) {   

serviceBusService.sendQueueMessage(queue, data, function (error) {
    if (!error) {
        console.log('Message sent....');
    }
})
}

//接收服務總線隊列消息

function receivePeriodicRecordsQueue(queue, channelName) {

serviceBusService.receiveQueueMessage(queue, function (error, receivedMessage) {
    if (!error) {
        if (receivedMessage != null) {        

            // some processing
        }
        else {
            console.log("---Service Bus Message is EMPTY-----");
            receivePeriodicRecordsQueue(workerRoleToSocket, channelName);
        }
    }
    else {
        console.log(error);
        receivePeriodicRecordsQueue(workerRoleToSocket, channelName);
    }
})

}

即使我已放置代碼以在ReceivedMessage為空或接收消息時出錯時再次接收消息,它也永遠不會進入該部分。 它總是只在控制台中打印一條自定義消息“沒有要接收的消息”。 鄧諾,我可以解決這個問題。

在node.js中使用服務總線一直是一個真正的問題,因為我無法可靠地接收消息。 請讓我知道是否有人有任何解決方案或解決此問題?

謝謝

我在node.js中有socket.io,在.net中有我的工作人員角色。 我正在將服務總線隊列消息從socket.io發送到工作人員角色,而在工作人員角色中,我正在做一些處理,並通過服務總線隊列將數據發送回socket.io。

但是我認為有時候socket.io會嘗試接收比工作角色可發送的消息早一些的服務總線隊列消息,因此,即使工作角色已發送了消息,socket.io也不會收到消息。

下面是我的代碼:

function requestQueue(channelName) {

sleepTime[channelName] = 0;    

console.log("-------------------SEND to WORKER ROLE------------------------");

// send the request to worker role
var broadcastMessage = "somedata";    

sendMessage(socketToWorkerRole, broadcastMessage)

receivePeriodicRecordsQueue(workerRoleToSocket, channelName);
}

//發送服務總線隊列消息

function sendMessage(queue, data) {   

serviceBusService.sendQueueMessage(queue, data, function (error) {
    if (!error) {
        console.log('Message sent....');
    }
})
}

//接收服務總線隊列消息

function receivePeriodicRecordsQueue(queue, channelName) {

serviceBusService.receiveQueueMessage(queue, function (error, receivedMessage) {
    if (!error) {
        if (receivedMessage != null) {        

            // some processing
        }
        else {
            console.log("---Service Bus Message is EMPTY-----");
            receivePeriodicRecordsQueue(workerRoleToSocket, channelName);
        }
    }
    else {
        console.log(error);
        receivePeriodicRecordsQueue(workerRoleToSocket, channelName);
    }
})

}

即使我已放置代碼以在ReceivedMessage為空或接收消息時出錯時再次接收消息,它也永遠不會進入該部分。 它總是只在控制台中打印一條自定義消息“沒有要接收的消息”。 鄧諾,我可以解決這個問題。

在node.js中使用服務總線一直是一個真正的問題,因為我無法可靠地接收消息。 請讓我知道是否有人有任何解決方案或解決此問題?

謝謝

我在node.js中有socket.io,在.net中有我的工作人員角色。 我正在將服務總線隊列消息從socket.io發送到工作人員角色,而在工作人員角色中,我正在做一些處理,並通過服務總線隊列將數據發送回socket.io。

但是我認為有時候socket.io會嘗試接收比工作角色可發送的消息早一些的服務總線隊列消息,因此,即使工作角色已發送了消息,socket.io也不會收到消息。

下面是我的代碼:

function requestQueue(channelName) {

sleepTime[channelName] = 0;    

console.log("-------------------SEND to WORKER ROLE------------------------");

// send the request to worker role
var broadcastMessage = "somedata";    

sendMessage(socketToWorkerRole, broadcastMessage)

receivePeriodicRecordsQueue(workerRoleToSocket, channelName);
}

//發送服務總線隊列消息

function sendMessage(queue, data) {   

serviceBusService.sendQueueMessage(queue, data, function (error) {
    if (!error) {
        console.log('Message sent....');
    }
})
}

//接收服務總線隊列消息

function receivePeriodicRecordsQueue(queue, channelName) {

serviceBusService.receiveQueueMessage(queue, function (error, receivedMessage) {
    if (!error) {
        if (receivedMessage != null) {        

            // some processing
        }
        else {
            console.log("---Service Bus Message is EMPTY-----");
            receivePeriodicRecordsQueue(workerRoleToSocket, channelName);
        }
    }
    else {
        console.log(error);
        receivePeriodicRecordsQueue(workerRoleToSocket, channelName);
    }
})

}

即使我已放置代碼以在ReceivedMessage為空或接收消息時出錯時再次接收消息,它也永遠不會進入該部分。 它總是只在控制台中打印一條自定義消息“沒有要接收的消息”。 鄧諾,我可以解決這個問題。

在node.js中使用服務總線一直是一個真正的問題,因為我無法可靠地接收消息。 請讓我知道是否有人有任何解決方案或解決此問題?

謝謝

我在node.js中有socket.io,在.net中有我的工作人員角色。 我正在將服務總線隊列消息從socket.io發送到工作人員角色,而在工作人員角色中,我正在做一些處理,並通過服務總線隊列將數據發送回socket.io。

但是我認為有時候socket.io會嘗試接收比工作角色可發送的消息早一些的服務總線隊列消息,因此,即使工作角色已發送了消息,socket.io也不會收到消息。

下面是我的代碼:

function requestQueue(channelName) {

sleepTime[channelName] = 0;    

console.log("-------------------SEND to WORKER ROLE------------------------");

// send the request to worker role
var broadcastMessage = "somedata";    

sendMessage(socketToWorkerRole, broadcastMessage)

receivePeriodicRecordsQueue(workerRoleToSocket, channelName);
}

//發送服務總線隊列消息

function sendMessage(queue, data) {   

serviceBusService.sendQueueMessage(queue, data, function (error) {
    if (!error) {
        console.log('Message sent....');
    }
})
}

//接收服務總線隊列消息

function receivePeriodicRecordsQueue(queue, channelName) {

serviceBusService.receiveQueueMessage(queue, function (error, receivedMessage) {
    if (!error) {
        if (receivedMessage != null) {        

            // some processing
        }
        else {
            console.log("---Service Bus Message is EMPTY-----");
            receivePeriodicRecordsQueue(workerRoleToSocket, channelName);
        }
    }
    else {
        console.log(error);
        receivePeriodicRecordsQueue(workerRoleToSocket, channelName);
    }
})

}

即使我已放置代碼以在ReceivedMessage為空或接收消息時出錯時再次接收消息,它也永遠不會進入該部分。 它總是只在控制台中打印一條自定義消息“沒有要接收的消息”。 鄧諾,我可以解決這個問題。

在node.js中使用服務總線一直是一個真正的問題,因為我無法可靠地接收消息。 請讓我知道是否有人有任何解決方案或解決此問題?

謝謝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM