[英]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.