2016-11-26 66 views
0

我在角度js中创建了一个工厂的插槽,但是on & emit作为脱离连接的localhost:5793。我的意思是var socket = io.connect(); & socket = io.connect('http://localhost:5793');是2不同的连接。对吗?如何2套接字io是相同的变量(连接)?如何在工厂角js中创建一个函数连接套接字io?

var App = angular.module("App", [ 

    ]); 

    App.factory('socket', ['$rootScope', function($rootScope) { 
     var socket = io.connect(); 
     return { 
      connect: function() { 
       socket = io.connect('http://localhost:5793'); 
      }, 
      on: function(eventName, callback) { 
       socket.on(eventName, callback); 
      }, 
      emit: function(eventName, data) { 
       socket.emit(eventName, data); 
      } 
     }; 
    }]); 

回答

0

这条线,在创建新的套接字连接 - 虽然我不完全相信,因为你没有通过任何URL

var socket = io.connect(); 

然后用下面的代码,您覆盖变量socket而失去了参照之前打开的套接字

connect: function() { 
    socket = io.connect('http://localhost:5793'); 
}, 

所以底线变插座持有参照只有一个连接而不是两个

相关问题