2014-07-06 165 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