簡體   English   中英

如何確定SignalR客戶端上是否有待處理的請求?

[英]How to find out if there is a request pending on SignalR client?

我試圖弄清楚SignalR客戶端上是否有任何待處理的請求,以便在所有請求得到處理之前,我可以顯示“正在加載”指示符。 這是我目前正在做的事情:

// some variable to hold whether there are pending requests
var isProcessing = false;


function ProcessSomeData(data)
{
    isProcessing = true;

    hub.server.setUserData(data).done(function () {
        isProcessing = false;
    });
}

然后,我查看isProcessing以查看是否所有請求都已處理。 這是不准確的(有時仍有正在處理的請求將isProcessing設置為false),所以我想知道是否有一種方法可以確定SignalR客戶端是“忙”於處理請求還是只是空閑。 有任何想法嗎?

我不知道SignalR庫中的任何其他解決方案,但之前我對此行為做了一些解決方法。 在從集線器發送真實數據之前,我先發送加載消息。 代碼是這樣的:

public void Send(string message)
{
     var username = Context.User.Identity.Name;
     context.Clients.User(username).loadingMessages();
     //-- Do you process here
     context.Clients.User(username).yourMessage(message);
}

在javascript中,您應該創建loadingMessages實現:

// some variable to hold whether there are pending requests
var isProcessing = false;

$.connection.hub.client.loadingMessages = function(){
   isProcessing = true;
   //-- Some Dom manupulation may be
}

function ProcessSomeData(data)
{


    hub.server.setUserData(data).done(function () {
       isProcessing = false;
    });
}

這不是最佳解決方案,但可以為您提供一些方法。

暫無
暫無

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

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