2011-08-10 4 views

답변

5

을보십시오이 :..?

var http=require('http'); 

var connected_users={}; 

var server=http.createServer(function(req,res){ 
    res.end('hi'); 
}); 

server.on('connection',function(socket){ 
    socket.__fd=socket.fd; 
    connected_users[socket.__fd]=socket.remoteAddress; 
    console.log(connected_users); 
    socket.on('close',function(){ 
     delete connected_users[socket.__fd]; 
     console.log(connected_users); 
    }); 
}); 
server.listen(8080); 

그것은 때마다 누군가가 연결 연결된 사용자의 배열을 콘솔에 출력한다/연결 해제

+0

이것이 내가 필요한 것입니다 : D Thanks – chris

0

연결 또는 고속 NPM 모듈을 사용할 수 있습니다 (Express는 연결 확장입니다). Connect (및 익스프레스)는 쿠키 기반 세션을 지원합니다. Express는 매우 가볍고 인기있는 프레임 워크입니다.

사용자를 지속적으로 저장하려면 '더티'모듈을 사용할 수 있습니다. 더 고급 스토어가 필요하다면 MongoDB, Riak 또는 일반 SQL 데이터베이스 (postgreSQL 및 mySQL)를 사용할 수 있지만 더티 또는 리크로 시작하여 현대적인 접근 방식을 배우는 것이 좋습니다 (즉, 키 값 저장소, 메모리 데이터베이스, 수평 확장 성, 문서 지향 및 기타 noSQL 데이터베이스).

+0

내가 저장하고 싶은 것은 ar andom id는 배열에있는 새로운 연결된 클라이언트에 대한 ID이며,이 ID가 제거되면 해당 배열에서 제거됩니다. – chris

+0

HTTP는 비 연결 프로토콜입니다. 따라서 사용자가 언제 연결을 끊을 지 추적 할 수는 없습니다. 대부분의 사용자는 연결 직후 연결을 끊기 때문에 위의 코드는 쓸모가 없습니다. – nponeccop

+0

가능할 수있는 방법이 있습니까 ?? – chris

0

express를 사용하는 경우 세션 미들웨어 app.use (express.cookieParser())와 app.use (express.session ({secret : 'some secret'})를 설정해야합니다. 기본적으로 메모리에 저장됩니다 하지만 당신은 할 수 저장 세션 데이터베이스를 사용하는 자세한 내용은 express guide 보면 들어 가 그것을인가

관련 문제