我使用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();
})
答案 0 :(得分:1)
您可以注意断开连接并重新连接;
$.connection.yourHubName.client.disconnect(function () {
$.connection.hub.start();
});