2011-08-14 3 views
1

내 웹 사이트에 노드 JS 채팅을 추가하고 있습니다.노드 JS 채팅 - 페이지 또는 닫기 창의 탐색 여부를 알리기

$(window).unload(function() { 
    jQuery.get("/leave", {id: session.id}); 
}); 

이 완벽하게 작동하고 사용자가 창을 닫았습니다 노드 JS 서버를 알려주는 그러나이 또한 제거 : 그들은 다음 JQuery와 방법을 사용하여 창을 닫으면 그 순간에 나는 채팅에서 사용자를 삭제하고 사용자가 웹 사이트의 다른 페이지로 이동할 경우 채팅방의 사용자. 도메인의 다른 페이지로 이동하여 채팅에서 삭제하지 않을 수있는 방법이 있습니까? 다른 페이지로 이동하는 순간 창을 닫는 것처럼 처리됩니다.

건배 사용자가 서버가 아닌 클라이언트의 채팅 잎

답변

0

확인합니다.

내가 볼 수있는 유일한 문제는 자바 스크립트로 페이지를로드하지 않는 한 사용자가 웹 사이트를 탐색 할 때마다 채팅을 떠나고 다시 입력하게해야한다는 것입니다.

연결 해제 부분에서 시간 초과를 설정하여이 문제를 해결할 수 있습니다. 완벽한 솔루션은 아니지만 대부분의 경우에 사용할 수 있습니다.

당신이 socket.io를 사용하는 경우는 여기에 몇 가지 서버 코드입니다 :

socket.on('connection', function (client) { 

    client.on('disconnect', function() { 
    client.broadcast({ action: "quit", clientId: client.sessionId }); 
    }); 

}); 

그리고 당신의 클라이언트 측에서 당신은 action === "quit"를 확인하고 적절한 조치를 취할 수 있습니다.