2012-01-24 2 views
3

사용자가 서버와 연결을 끊으면 세션 ID를 어떻게 알 수 있습니까?Socket.IO를 사용하면 연결이 끊긴 사용자의 세션 ID를 어떻게 알 수 있습니까?

현재 모든 기존 클라이언트에게 메시지를 다시 보내달라고 요청하는 추악한 방법이 있습니다.

socket.on('disconnect', function() { 
    // What’s the sessionid? 
}); 
+2

내 대답이 실제로 질문에 대답하기에 충분하다고 생각하지 않으므로 삭제했습니다. 그러나, 나는 링크가 도움이 될 것 같아요 : http://chrissilich.com/blog/socket-io-0-7-sending-messages-to-individual-clients/ 간단히 말해, socket.id의 일부 해커입니다. –

+0

감사합니다 - 그것은 그렇게 명백한 것 같지 않습니다 그래서 약간의 해커를 기대하고있었습니다! –

+1

http://www.danielbaulig.de/socket-ioexpress/ – fent

답변

2
socket.on('disconnect', function() { 
    console.log(this.id); 
}); 

당신을 폐쇄했다 소켓의 ID를 제공합니다 그러나 이것은 해킹의 아마 더 ... 당신은 소켓에 데이터를 첨부 할 수 있습니다 :)

+0

을 참조하십시오. 이것이 "정의되지 않았 으면"무엇을 의미합니까? – Kayvar

8

: 서버에 연결했을 때 :

var clients = {} 
var client_id = 0; 

io.sockets.on('connection', function (socket) { 
    socket.client_id = client_id; // or your `session_id` 
    socket.anyData = "foobar"; 
    clients[client_id] = socket; 
    client_id++; 

    socket.on("disconnect", function() { 
    console.log(this.anyData) // prints: foobar 
    delete clients[this.client_id]; 
    } 
} 
+0

이 게시물 정말 도움이, 감사합니다 남자! – RozzA