我有一个控制器,每当访问此控制器中的 URL 时,我都想建立一个套接字连接。我正在创建一个套接字服务,并且想知道何时/如何实例化它。我意识到我可以使用$rootScope.$on('$routeChangeStart', function () {});
任何东西来监视我的 URL /approval
,但似乎有更好的方法。 当访问给定控制器的路由时,初始化套接字连接的最佳位置在哪里?
目前我只是在配置中对其进行初始化以测试我的模块,但从长远来看这不起作用,因为我将有 4-5 个涉及套接字的控制器,并且使用的套接字取决于您正在访问的控制器. 用户只会被引导到可能的 5 个套接字/控制器组合中的 1 个,这就是为什么我不能让所有控制器在控制器配置中建立它们的套接字。
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
}]);