2017-01-16 4 views
2

Вот мой код javascript, пытающийся перехватить события. Очень просто и прямо.SignalR Not Capturing Повторное подключение событий на стороне клиента

 $.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() { 
      //... 
     }); 

Hub start() Правильно, без проблем. Однако, когда соединение потеряно, точки останова не попадают, ни одна из этих функций не запускается. Я знаю, что signalR работает, потому что я получаю следующий вывод с консоли (отладчик Chrome).

[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)

ответ

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... '); 
}); 
+0

Это работает! : D спасибо за помощь !!! – Tom