Signalr 为什么我的disconnect()处理程序在signar客户端JS中没有被触发?

Signalr 为什么我的disconnect()处理程序在signar客户端JS中没有被触发?,signalr,signalr-hub,signalr.client,Signalr,Signalr Hub,Signalr.client,我在使用SignalR 2.0.3库时看到一些奇怪/意外的行为 我正试着给客户打电话,他们似乎没有被解雇。 我真的很想让重新连接、重新连接和断开连接的回调在JS客户端工作。 SignalR连接成功,我已经在服务器和客户端之间进行了通信 这里有几个代码片段: $.connection.reconnecting = function () { alert("reconnecting"); }; $.connection.reconnected = function () { aler

我在使用SignalR 2.0.3库时看到一些奇怪/意外的行为

我正试着给客户打电话,他们似乎没有被解雇。 我真的很想让重新连接、重新连接和断开连接的回调在JS客户端工作。 SignalR连接成功,我已经在服务器和客户端之间进行了通信

这里有几个代码片段:

$.connection.reconnecting = function () {
    alert("reconnecting");
};
$.connection.reconnected = function () {
    alert("We have been reconnected");
};
$.connection.disconnected = function () {
    alert("We are disconnected!");
};
我可以发誓,当我使用信号机1.x的时候,我就开枪了。 目前,我们使用的是2.0.3版

我正在运行2台计算机的设置,其中我的服务器应用程序(和集线器)位于1台计算机上

以下是我用来重现的步骤:

$.connection.reconnecting = function () {
    alert("reconnecting");
};
$.connection.reconnected = function () {
    alert("We have been reconnected");
};
$.connection.disconnected = function () {
    alert("We are disconnected!");
};
1) 从第二台机器连接。我在浏览器中查看了网络流量 控制台,看起来还可以

2) 接下来,我断开客户机与网络的连接。在控制台里我看到了信号机 正在尝试重新连接。(这与预期一样)

3) 最后,在N次重试之后,它看起来好像断开了连接。(我看到最后一次重试是“取消” 在控制台输出中

4) 但是,未调用断开连接的()处理程序

有什么见解或想法如何追踪这一点

谢谢,
JohnB

使用SignalR 2.x,您可以按如下方式注册回调:

$.connection.hub.reconnecting(function() {
    alert("reconnecting"); 
});

$.connection.hub.reconnected(function() {
    alert("We have been reconnected"); 
});

$.connection.hub.disconnected(function() {
    alert("We are disconnected!"); 
});

您还可以使用
$.connection.hub.stateChanged()
添加回调。看到了。

我仍然没有看到像我预期的那样发射。我正在使用信号器2.0.3。我在Windows7中运行IIS 7。似乎使用的协议是“ServerSentMessages”。有人能帮我找出这个问题的根本原因吗?谢谢,JBI和JohnB遇到了同样的问题,注册断开连接的处理程序而不是直接在hub代理对象上解决了这个问题。