0
이처럼 angularjs 팩토리에 SignalR 허브 프록시가 있습니다.SignalR 연결이 닫혀 있지만 angularjs 범위가 파손 된 후에도 작동합니다.
var app = angular.module('app');
app.factory("signalRHubProxy", ['$rootScope', "$timeout", function ($rootScope, $timeout) {
function signalRHubProxyFactory(serverUrl, hubName) {
var connection = $.hubConnection(serverUrl);
var proxy = connection.createHubProxy(hubName);
connection.disconnected(function() {
$timeout(function() {
connection.start();
}, 5000)
});
return {
on: function (eventName, callback) {
proxy.on(eventName, function (result) {
$rootScope.$apply(function() {
if (callback) {
callback(result);
}
});
});
connection.start();
},
stop: function() {
connection.stop();
},
connection: connection
};
}
return signalRHubProxyFactory;
}]);
때때로 서버가 수신 대기하지 않기 때문에 연결 시간 초과가 사용되었으므로 다시 시도 할 수 있습니다.
app.controller("directiveController", function($scope, signalRHubProxy){
var signalRProxy = signalRHubProxy(
"url",
"hubname");
signalRHubProxy.on("datapush", function(data){
});
$scope.$destroy(function(){
signalRHubProxy.stop();
??? how to kill signalr hub
})
})
을하지만 내 지시를 제거 할 때, signalR는 여전히 작동 : 내 컨트롤러에서,이 팩토리를 사용하고 있습니다.