@corpecca/qp-web-resources
Version:
Qp web resources
58 lines (47 loc) • 1.59 kB
JavaScript
var qp = qp || {};
(function ($) {
//Check if SignalR is defined
if (!$ || !$.connection) {
return;
}
//Create namespaces
qp.signalr = qp.signalr || {};
qp.signalr.hubs = qp.signalr.hubs || {};
//Get the common hub
qp.signalr.hubs.common = $.connection.qpCommonHub;
var commonHub = qp.signalr.hubs.common;
if (!commonHub) {
return;
}
//Register to get notifications
commonHub.client.getNotification = function (notification) {
qp.event.trigger('qp.notifications.received', notification);
};
//Connect to the server
qp.signalr.connect = function() {
$.connection.hub.start().done(function () {
qp.log.debug('Connected to SignalR server!'); //TODO: Remove log
qp.event.trigger('qp.signalr.connected');
commonHub.server.register().done(function () {
qp.log.debug('Registered to the SignalR server!'); //TODO: Remove log
});
});
};
if (qp.signalr.autoConnect === undefined) {
qp.signalr.autoConnect = true;
}
if (qp.signalr.autoConnect) {
qp.signalr.connect();
}
//reconnect if hub disconnects
$.connection.hub.disconnected(function () {
if (!qp.signalr.autoConnect) {
return;
}
setTimeout(function () {
if ($.connection.hub.state === $.signalR.connectionState.disconnected) {
$.connection.hub.start();
}
}, 5000);
});
})(jQuery);