2014-09-05 2 views
0

Node.J를 사용하여 한 번에 여러 포트를들을 수있는 방법이 궁금합니다. 현재, 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 
}); 
관련 문제