Messaging to handle signalR disconnection and reconnection added

pull/6/head
Mark McDowall 11 years ago
parent 1a33896e05
commit 53a7ed94e1

@ -14,7 +14,7 @@ namespace NzbDrone.Host.Owin.MiddleWare
{ {
SignalrDependencyResolver.Register(container); SignalrDependencyResolver.Register(container);
GlobalHost.Configuration.DisconnectTimeout = TimeSpan.FromSeconds(300000); GlobalHost.Configuration.DisconnectTimeout = TimeSpan.FromMinutes(3);
} }
public void Attach(IAppBuilder appBuilder) public void Attach(IAppBuilder appBuilder)

@ -23,12 +23,13 @@ define(function () {
} }
} }
return window.Messenger().post({ return window.Messenger().post({
message : options.message, message : options.message,
type : options.type, type : options.type,
showCloseButton: true, showCloseButton: true,
hideAfter : options.hideAfter, hideAfter : options.hideAfter,
id : options.id id : options.id,
actions : options.actions
}); });
}, },

@ -3,8 +3,9 @@ define(
[ [
'vent', 'vent',
'jquery', 'jquery',
'Shared/Messenger',
'signalR' 'signalR'
], function (vent, $) { ], function (vent, $, Messenger) {
return { return {
appInitializer: function () { appInitializer: function () {
@ -25,6 +26,9 @@ define(
} }
}; };
var tryingToReconnect = false;
var messengerId = 'signalR';
this.signalRconnection = $.connection('/signalr'); this.signalRconnection = $.connection('/signalr');
this.signalRconnection.stateChanged(function (change) { this.signalRconnection.stateChanged(function (change) {
@ -35,6 +39,49 @@ define(
vent.trigger('server:' + message.name, message.body); vent.trigger('server:' + message.name, message.body);
}); });
this.signalRconnection.reconnecting(function() {
tryingToReconnect = true;
Messenger.show({
id : messengerId,
type : 'info',
hideAfter : 0,
message : 'Connection to backend lost, attempting to reconnect'
});
});
this.signalRconnection.reconnected(function() {
tryingToReconnect = false;
Messenger.show({
id : messengerId,
type : 'success',
hideAfter : 5,
message : 'Connection to backend restored'
});
});
this.signalRconnection.disconnected(function () {
if (tryingToReconnect) {
$('<div class="modal-backdrop"></div>').appendTo(document.body);
Messenger.show({
id : messengerId,
type : 'error',
hideAfter : 0,
message : 'Connection to backend lost',
actions : {
cancel: {
label: 'Reload',
action: function() {
window.location.reload();
}
}
}
});
}
});
this.signalRconnection.start({ transport: this.signalRconnection.start({ transport:
[ [
'longPolling' 'longPolling'

Loading…
Cancel
Save