如何在工厂角js中创建一个函数连接套接字io?
问题描述:
我在角度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);
}
};
}]);
答
这条线,在创建新的套接字连接 - 虽然我不完全相信,因为你没有通过任何URL
var socket = io.connect();
然后用下面的代码,您覆盖变量socket
而失去了参照之前打开的套接字
connect: function() {
socket = io.connect('http://localhost:5793');
},
所以底线变插座持有参照只有一个连接而不是两个