如何在工厂角度js中创建函数连接套接字io?

时间:2016-11-26 17:55:28

标签: angularjs socket.io

我正在以角度js创建工厂的套接字,但是on& emit作为连接的localhost:5793。我的意思是var socket = io.connect();& socket = io.connect('http://localhost:5793');是2个不同的连接。对吧?如何2插槽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);
            }
        };
    }]);

1 个答案:

答案 0 :(得分:0)

使用此行,您可以创建新的套接字连接 - 虽然我不完全确定,因为您没有传递任何URL

var socket = io.connect();

然后使用以下代码覆盖变量socket并丢失对先前打开的套接字的引用

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

所以底线变量套接字只能引用一个连接而不是两个连接