javascript - 无法在 OnDisconnected 上调用客户端方法

标签 javascript asp.net-mvc-3 signalr signalr-hub signalr.client

我在信号 R 的 TestHub(由 Hub 继承)类中有一个断开连接方法。我无法从 OnDisconnected 方法调用 javascript 方法 fnDeleteCustomer ,但是在 Connect 方法上调用相同的 js 方法。我做错了什么?

 public override Task OnDisconnected()
        {
            try
            {
                 var customer = ConnectedUsers.Find(x => x.ConnectionID == Context.ConnectionId);
                if (customer!=null)
                {
                  Clients.Client(customer.ConnectionID).fnDeleteCustomer(customer.UserId);
                  return base.OnDisconnected();
                }
            }
            catch { };
            return null;
        }

最佳答案

根据MSDN :

Occurs when a connection disconnects from this hub instance.

因此您没有任何事件连接,并且无法访问客户端中心及其方法。

我想你应该使用客户端disconnected事件:

$.connection.hub.disconnected(function() {
    $.connection.hub.fnDeleteCustomer(userId);
});

有关信号器生命周期事件的更多信息,请参见 here .

关于javascript - 无法在 OnDisconnected 上调用客户端方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32201399/

相关文章:

asp-classic - IIS Express 是否支持调试经典 ASP?

c# - Signalr SQL底板导致The wait operation timed out异常

javascript - 在过渡结束时添加新动画

JavaScript 函数

asp.net-mvc-3 - ASP.Net MVC 3 : Where to handle session loss?

css - iframe 不更新

angular - Angular 和 .NET Core 的 SignalR CORS 问题

C# SignalR 异常 - 连接在收到调用结果之前开始重新连接

javascript - 测量四个相似 Javascript 函数之间的 CPU 负载差异

javascript - jQuery 图像 slider - 奇怪的行为