Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Socket.IO连接事件未正确触发_Node.js - Fatal编程技术网

Node.js Socket.IO连接事件未正确触发

Node.js Socket.IO连接事件未正确触发,node.js,Node.js,由于某些原因,当我从本地计算机连接时,连接事件会触发。但是,当我从另一台机器连接时,它为套接字io提供服务,但它不会发出任何反馈,而且控制台输出的非消息也会发出 服务器启动时将运行以下操作: startSocketService : function(http,fn){ ar pub = redis.createClient(); var sub = redis.createClient(); var client = redis.createClient();

由于某些原因,当我从本地计算机连接时,连接事件会触发。但是,当我从另一台机器连接时,它为套接字io提供服务,但它不会发出任何反馈,而且控制台输出的非消息也会发出

服务器启动时将运行以下操作:

startSocketService : function(http,fn){
    ar pub = redis.createClient();
    var sub = redis.createClient();
    var client = redis.createClient();
    var service = io.listen(http); //http is just the ExpressJS service
    service.enable('browser client minification');
    service.enable('browser client etag');
    service.set('transports', [
        'websocket'
        , 'flashsocket'
        , 'htmlfile'
        , 'xhr-polling'
        , 'jsonp-polling'
    ]);
    service.set('store',new RedisStore({
        redisPub: pub,
        redisSub: sub,
        redisClient: client
    }));
    console.log('Socket service listening on port '+config.ports.http);
    service.sockets.on('connection',function(socket){
        console.log("Incoming Socket Connection -> ",socket.id);
        if(typeof fn === 'function'){fn(socket);} //this is just a callback
    });
}

该console.log以及回调中的所有console.log只有在我从127.0.0.1连接时才会触发。任何外部连接都不会输出到控制台,但它们似乎正在工作。他们似乎也有一个独特的插座id。这仍然让我担心。我不能用它来测试任何东西

问题出在客户端。我指的是127.0.0.1,所以在其他机器上,他们指的是他们自己的本地实例。

发布一些关于如何设置的代码谢谢你的帮助,韦斯。顺便说一句,你关于谷歌面试的文章很有趣