1

私はsocket.ioの工場を持っています。ユーザーがログインしていない場合、私は持っています

var socket = io.connect(SOCKET_URL);

ユーザーがサイトにログインすると、ソケットの値が変更されます。

socket = io.connect(SOCKET_URL, {forceNew: true});

私のコントローラーには

socket.on('notification', function(data){console.log(data);})

ファクトリでソケット変数を変更した後、この socket.on('notification') が機能しません。

私の工場

app.factory('socket', function($rootScope){
     var socket = io.connect(SOCKET_URL);
     return {
      reconnect:function(){
          console.log("reconnect");
          socket = io.connect(SOCKET_URL, {forceNew: true});
       },
      on: function (eventName, callback) {
         socket.on(eventName, function () {
             var args = arguments;
             $rootScope.$apply(function () {
                callback.apply(socket, args);
             });
         });
    }
});

私のコントローラー

 app.controller('myCtrl1', function($scope, socket){
      $scope.login = function(){
            // .............
            socket.reconnect();
      }
 });


 app.controller('myCtrl2', function($scope, socket){
      socket.on('notification', function(data){ // this is not working 
          console.log(data);                  //after calling socket.reconnect();
      })
 });
4

0 に答える 0