2014-07-06 207 views
0

我将socket.io集成到我的项目中。我正在使用下面的代码,它在第一个请求后创建了6个连接。这是正常的吗?Socket.io创建多个连接

server.listen(
    port, 
    function() 
    { 
     console.log('Node.js server listening on port ' + port); 
    } 
); 

server.on(
    'connection', 
    function(socket) 
    { 
     console.log('socket.io connection'); 
    } 
); 

这里是的console.log输出:

Node.js server listening on port 3000 
socket.io connection 
socket.io connection 
socket.io connection 
socket.io connection 
socket.io connection 
socket.io connection 

回答

1

你得到这样的结果,因为(据我所知)你server对象是节点http.Server类的一个实例,并没有连接与所有Socket.IO。在你的例子中,'connection'事件正在被解雇任何请求你的节点服务器。它看起来像浏览器向您的节点服务器发送6个请求:page,favicon.ico和其他4个请求(可能是图像,javascript,css等)。

要socket.io集成到你的项目,你可以使用下面的代码:

var http = require('http'); 
var sio = require('socket.io'); 

var server = http.createServer(function(req, res) { 
    //you request handler here 
}); 

var io = sio(server); 

io.on('connection', function(socket) { 
    console.log('socket connected'); 
    //now you can emit and listen messages 
}); 

var port = 3000; 
server.listen(port, function() { 
    console.log('Node.js server listening on port ' + port); 
}); 

,当然,在official documentation可能是非常有帮助的。祝你好运:)

+0

谢谢!这有帮助 – Gavin