2014-09-05 55 views
0

我只是想知道如何能夠一次使用Node.Js監聽多個端口。 目前,可以說我有一個簡單的聊天應用程序,可以聽取port no 8080並將消息發送給通過該端口連接的所有人。但是我想讓它更像簡單的實時聊天應用程序。如果有10人,並且他們想要發送消息給任何人,那麼該消息應該只發給那個特定的人而不是其他人。 這裏是我的簡單代碼開始:使用Node.JS一次收聽多個端口

var app = require('express')(); 
var http = require('http').Server(app); 
var io = require('socket.io')(http); 

app.get('/', function(req, res){ 
    res.sendfile('index.html'); 
}); 


http.listen(3000, function(){ 
    console.log('listening on *:3000'); 
}); 

io.on('connection', function(socket){ 
    console.log('a user connected'); 
    socket.on('disconnect', function(){ 
    console.log('user disconnected'); 
    }); 
}); 

io.on('connection', function(socket){ 
    socket.on('chat message', function(msg){ 
    io.emit('chat message', msg); 
    }); 
}); 

任何幫助將不勝感激。

回答

1

而不是使用多個端口,雖然技術上可行,我會使用Socket.io Rooms。然後,您可以將消息發送給這些房間中的人。

io.on('connection', function (socket) { 
    socket.join('some room'); //join room 

    io.to('some room').emit('some event'); //send messages to members of room 
});