0
私はこのようにangularjsファクトリにSignalRハブプロキシを持っています。SignalR接続は閉じていますが、anglejsのスコープ破棄後もまだ動作しています
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はまだ動作します。