2011-10-28 3 views
0

내부 커뮤니케이션을 위해 JQuery 채팅을 구현했습니다. 잘 작동합니다. 우리는 데이터베이스에 사용자 상태를 저장하고 있습니다. 사용자가 로그 아웃 할 때 로그 아웃 할 때 DB에 자신의 상태를 저장합니다.Jquery chat 사용자 세션 추적 방법

사용자가 로그 아웃 한 버튼을 클릭하여 창을 닫거나 PC를 종료하지 않으면 그는 여전히 채팅 시스템에 로그인되어 있습니다.

사용자 세션을 추적하여 각 사용자가 로그인했는지 추적 할 수 있습니까? 이 사용자는 계속 활성화, 로그인 및 열려있는 브라우저가되어, 서버를 말할 것이다 메시지 -

하자 사용자가 서버에 작은 "핑"을 보내

+0

15 분 동안 활동하지 않는 사용자의 db 세션을 제거하는 php 함수를 사용해야합니다. 따라서 온라인 사용자 중 누구나 로그 아웃하여 한 사람 만 로그인하고 그 사용자는 한 번 로그인하면됩니다. 마지막 활동 후 16 분 동안 채팅에 액세스하려고하면 로그인을 실행합니다. – Val

답변

2

가장 좋은 방법 (그러나 가장 안전한 또는 가장 강력한) 내가 쿠키를 통해 것입니다 이러한 목표를 달성하기 위해 생각합니다. 먼저 서버/jquery 스크립트는 사용자가 로그인 할 때 브라우저 세션이 종료 될 때 제거되는 컴퓨터에 쿠키를 넣습니다. 그런 다음 로그 아웃 할 때 쿠키를 제거하십시오. 따라서 사용자가 로그인했는지 확인하려면 쿠키를 찾습니다.

0

예를 들어 CRON를 사용하는 솔루션이있다. 모든 ping을 수행 할 때 현재 사용자의 시간 (last_activity)을 업데이트하십시오.

CRON을 사용하면 last_activity 시간이 30 초보다 크지 않은 경우 모든 사용자를 확인할 수 있습니다. 그렇다면 - 로그 오프 상태로 설정하십시오. 그것에 대해

간단한 SQL 쿼리 :

UPDATE users 
    SET logged_in = false 
WHERE logged_in = true 
    AND UNIX_TIMESTAMP() - last_activity > 30