У меня есть угловое приложение с использованием SignalR. Когда пользователь аутентифицирован, я инициализирую подключение к серверу. Я считаю, что если клиент неактивен через определенное время, он отключится. С приведенным ниже кодом, как бы я снова подключиться, если он отключится от бездействия?Как обновить соединение SignalR, если таймауты подключения от неактивности
var initializeSockets = function(){
self.proxy = null;
var connection = $.hubConnection(ENV.socketEndpoint,{
qs: {token:User.getToken()},
logging: false,
useDefaultPath: false
});
self.proxy = connection.createHubProxy('messageCreatedEmitter');
self.proxy.on('onMessageCreated',function(data){
//the following is wrapped in a try catch
//because it will break in a browser, and
//will not allow the message to be emitted
try {
Alert.messageReceived();
} catch (e) {
}
$rootScope.$emit('Messages:messageReceived',data);
})
if($.connection.hub && $.connection.hub.state === $.signalR.connectionState.disconnected
|| $.connection.hub.state === undefined){
connection.start().done(function(){
$log.info('connected');
})
}
}
$rootScope.$on('User:userAuthenticated',function(event,user){
initializeSockets();
})
Вы уверены, что он отключен от неактивности, а не автоматически переподключается? – Tracker1
Ну, я знаю, что это так, но я предположил, что через некоторое время бездействия он отключится. Я ошибаюсь? – TheJediCowboy
Я не уверен, я знаю, что SignalR имеет довольно сильную систему резервного/повторного подключения ... вы можете отправить сообщение «ping» каждые пару минут, чтобы убедиться, что узел жив. Если вы не захотите * отключиться после бездействия. – Tracker1