私は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();
})
});