我有一个控制器,每当访问此控制器中的URL时,我想建立一个套接字连接。我正在创建一个套接字服务,我想知道何时/如何实例化它。我意识到我可以使用$rootScope.$on('$routeChangeStart', function () {});
监控我的网址/approval
,但似乎可能有更好的方法。 访问给定控制器的路由时,初始化套接字连接的最佳位置在哪里?
目前我只是在配置中初始化它以测试我的模块,但是长期这不起作用,因为我将有4-5个涉及套接字的控制器,并且使用的套接字取决于你使用哪个控制器正在访问。用户将只被定向到潜在的5个套接字/控制器组合中的一个,这就是为什么我不能让所有控制器在控制器配置中建立其套接字。
angular.module('workstation.process.approval', [
/* Dependencies */
'workstation.services'
]).
config(['$routeProvider', 'SocketServiceProvider', function($routeProvider, SocketServiceProvider) {
SocketServiceProvider.connect('/socket/workstation/approval');
/* URL mappings */
$routeProvider.
when('/approval', {templateUrl: '/partials/loading.htm', controller: 'ApprovalCtrl'}).
when('/approval/dashboard', {templateUrl: '/partials/approval/dashboard.htm', controller: 'ApprovalCtrl'})
}]).
controller('ApprovalCtrl', ['$scope', '$cookieStore', 'WorkflowProcessService', 'WorkstationService', 'SocketService', 'socketUrl', '$location', function ($scope, $cookieStore, WorkflowProcessService, WorkstationService, SocketService, socketUrl, $location) {
//my controller
}]);