在Signalr Asp.net mvc上断开事件

时间:2016-01-01 22:11:34

标签: c# asp.net-mvc signalr

我在客户端使用SignalR而不使用代理

我想在浏览器关闭时处理signalR中的断开事件,然后在我的应用程序中初始化另一个集线器

有关详细信息,请参阅此代码

var firstHub = jqu.hubConnection();
firstHub.url = "http://localhost:9351/signalr";
var socket = firstHub.createHubProxy('testHub');
var webSocketClass = {
   id=''
};
socket.on("sendAll", function (name, message) {
    console.log(name + " " + message);
});

firstHub.start({ jsonp: true }).done(function () {
    socket.invoke("send", webSocketClass);

这是第一个中心,第二个看起来像这样:

var secondHub = jqu.hubConnection();
secondHub.url = "http://localhost:9351/signalr";
var secondSocket = secondHub.createHubProxy("onlineUserHub");
secondSocket.on("send", function (user) {
    console.log(user);
});
 secondHub.start({ jsonp: true }).done(function () {
        secondSocket.invoke("onLineUserChanged", webSocketClass);
    });

第一个集线器断开连接后,我想将值发送到第二个集线器。

以下代码不起作用:

 socket.on("onDisconnect", function () {
    alert("Hello");
});

1 个答案:

答案 0 :(得分:1)

在信号器2.2中,检查连接关闭,你可以试试这个

var connection = $.hubConnection();

var hub = connection.createHubProxy('TestHub');

//the most important part
connection.disconnected(function() {
    alert('Disconnected!');
});

connection.start();

此事件可能会立即触发或在多次尝试重新连接后触发