SignalR未捕获客户端重新连接事件

时间:2017-01-16 08:37:29

标签: javascript signalr

这是我的javascript代码试图拦截事件。非常简单直接。

        $.connection.hub.reconnecting = function (cb) {
            $('#hub-info').text(getDateTime() + ': reconnecting... '); //breakpoint
            if(cb) cb();
        };
        $.connection.hub.reconnected = function (cb) {
            $('#hub-info').text(getDateTime() + ': reconnected '); //breakpoint
            if(cb) cb();
        };
        $.connection.hub.disconnected = function (cb) {
            $('#hub-info').text(getDateTime() + ': disconnected '); //breakpoint
            if(cb) cb();
        };
        $.connection.hub.start()
        .done(function () {
            //...
         });

集线器start()正确,没问题。但是,当连接丢失时,不会触发断点,也不会触发这些函数。我知道signalR正在工作,因为我从控制台(Chrome Debugger)获得了以下输出。

[19:21:02] SignalR: Keep alive has been missed, connection may be dead/slow. jquery.signalR.js:84 
[19:21:08] SignalR: Keep alive timed out.  Notifying transport that connection has been lost. jquery.signalR.js:84 
[19:21:10] SignalR: Closing the Websocket. jquery.signalR.js:84 
[19:21:10] SignalR: webSockets reconnecting. query.signalR.js:84 
[19:21:10] SignalR: Connecting to websocket endpoint 'ws://localhost/sr/reconnect?

我做错了什么?谢谢你的帮助:)

SignalR版本(2.2.1)

1 个答案:

答案 0 :(得分:2)

看起来您可能需要将事件用作函数,传入回调,而不是执行赋值。 https://www.asp.net/signalr/overview/guide-to-the-api/hubs-api-guide-javascript-client#connectionlifetime

$.connection.hub.reconnecting(function () {
  $('#hub-info').text(getDateTime() + ': reconnecting... ');
});