2013-01-18 25 views
0

由於某種原因,當我從本地機器連接時,連接事件觸發。但是當我從另一臺機器連接時,它會提供socket io,但它不會吐出任何反饋,也不會吐出控制檯輸出的消息。Socket.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。這仍然讓我擔心。我無法像這樣測試任何東西!

+0

發表一些關於如何設置的代碼 – wesbos

+0

感謝您的幫助,Wes。順便說一句,你在谷歌的採訪文章是相當有趣的 –

回答

0

問題是客戶端。我指向127.0.0.1,所以在其他機器上指向他們自己的本地實例。