Angularjs 何时/如何初始化控制器中的套接字

Angularjs 何时/如何初始化控制器中的套接字,angularjs,Angularjs,我有一个控制器,每当访问该控制器中的URL时,我都希望建立套接字连接。我正在创建一个套接字服务,不知道何时/如何实例化它。我意识到我可以在('$routeChangeStart',function(){})上使用$rootScope.$on来监视我的URL是否有任何内容/approval,但似乎有更好的方法访问给定控制器的路由时,初始化套接字连接的最佳位置在哪里? 目前,我只是在配置中初始化它来测试我的模块,但从长远来看,这不会起作用,因为我将有4-5个涉及套接字的控制器,使用的套接字取决于您访

我有一个控制器,每当访问该控制器中的URL时,我都希望建立套接字连接。我正在创建一个套接字服务,不知道何时/如何实例化它。我意识到我可以在('$routeChangeStart',function(){})上使用
$rootScope.$on
来监视我的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
}]);

您可以在所有控制器上放置一个公共resolve属性,并在该resolve函数中初始化套接字routeprovider@Ajaybeniwal-这是个好主意。因此,我可以设置一个只建立一次套接字连接的方法,并在所有路由上通过resolve属性传递它。。。。你能把这个作为一个答案吗?我想给其他人更多的时间来发布潜在的解决方案,但我最终可能会这样做。