그래서 저는 채팅 앱과 비슷한 것을 쓰고있어 사용자가 더 이상 활동하지 않을 때를 감지 할 방법이 필요합니다. 본질적으로 나는 다른 사용자가 응용 프로그램의 사용자가 페이지를 떠났거나 브라우저를 닫았을 때 로그 아웃되었음을 알릴 필요가 있습니다. 서버 측 스크립트가 "15 분 안에 사용자 X의 요청을받지 못했기 때문에 이것을 알아낼 수있는 방법이 없으므로 그가 밖으로 나왔다고 생각할 것입니까?"PHP에서 채팅 스크립트의 비활성 세션을 어떻게 감지합니까?
답변
주석의 링크에서 말한 것처럼 AJAX를 사용해야합니다. (내 생각에) 이렇게하는 가장 쉬운 방법은 여기, JQuery와 함께있는 아래의 예이다 : 당신의 sessioncheck.php 파일에 지금
$(document).ready(function(){
window.setInterval(function(){
initiateSessionCheck();
5000);
function initiateSessionCheck() {
$.ajax({
type : 'POST',
url : 'sessioncheck.php',
success : function(data){
//success
},
error : function(XMLHttpRequest, textStatus, errorThrown) {
//error do something they are no longer active
}
});
}
});
당신이 그건이
session_start();
if (!$_SESSION) { //you could check a session variable explicitly like $_SESSION['user_id'] != ''
$return['error'] = true;
} else {
$return['error'] = false;
}
echo json_encode($return);
을하고 싶은 것은 기본하지만 트릭을해야합니다!
이 세션의 다른 사람의 상태가 아닌 세션 상태를 확인하는 것으로 보입니다. 의미하는 것은 당신과 내가 이야기하고 떠날 때, 나의 세션은 끝날 것이지만, 당신은 그것을 어떻게 인식 할 것입니까? 서버가 닫혀있는 세션을 어떻게 인식합니까? php는 나와 나와 세션을 공유하지 않습니다. –
기다려요. 제가 생각하기에 세션 키에 핑할 때마다 "사용자 X가 '타임 스탬프'에 핑 (ping) 된 DB를 쓸 것입니다. 그러면 활성 사용자 목록은 마지막 ping ...에 의해 결정됩니다. 맞습니까? –
그래, 같은 기능을 사용하여 매 x 초마다 특정 테이블에 날짜와 시간을 쓸 수 있습니다. 그런 다음 동일한 테이블을 검사하는 cron을 설정하고 날짜 시간 소인에서 x 시간이 경과하면 사용자가 사라졌으며 활성 세션이 없다고 가정 할 수 있습니다 (이들은 ajax 호출을 중단하기 위해 페이지를 떠나야 할 것입니다). 세션이 끝나면 active_session이라는 사용자 테이블의 열에 쓸 수 있습니다 (예를 들어). 활성 상태가 아니면 0으로 설정하십시오. 로그인 할 때 1로 설정되어 있는지 확인하십시오. 그런 다음 다른 사용자에 대한 동일한 AJAX 호출에서 날짜 시간 소인을 작성하면 –
- 1. Gmail에서 마우스 움직임을 어떻게 감지합니까?
- 2. PHP에서 라운드 수를 감지합니까?
- 3. Strophe.js와의 연결이 끊긴 세션을 어떻게 검색합니까?
- 4. PHP에서 IPv6을 감지합니까?
- 5. 난 10 분간 경우 비활성 PHP에서 세션을 사용하여 사용자가 로그 아웃 어떻게
- 6. PHP 세션을 채팅 전용으로 사용하기
- 7. PHP에서 세션을 비활성화하는 방법
- 8. 어떻게 세션을 PHP에서 값을 업데이 트합니까?
- 9. 자바 스크립트없이 PHP에서 프레임을 감지합니까?
- 10. PHP에서 세션을 사용하는 방법?
- 11. PHP에서 모두를위한 세션을 관리합니다
- 12. PHP에서 가장 좋은 채팅 유형
- 13. 언제 PHP에서 세션을 시작하고 종료해야합니까?
- 14. Node.js로 여러 채팅 세션을 처리하는 방법
- 15. wcf 채팅 응용 프로그램에서 세션을 사용하는 이유
- 16. PHP에서 ASP 세션을 읽는 방법
- 17. SoapClient - PHP에서 세션을 유지하는 방법
- 18. ASP.Net은 문화를 어떻게 감지합니까?
- 19. Control.PreferredSize가 변경되면 어떻게 감지합니까?
- 20. 긴 프레스를 어떻게 감지합니까?
- 21. 시스템에서 엔디안을 어떻게 감지합니까?
- 22. 어떻게 CGIproxy를 감지합니까?
- 23. JavaScript는 정규식을 어떻게 감지합니까?
- 24. 버튼을 어떻게 감지합니까?
- 25. iframe 크기를 어떻게 감지합니까?
- 26. 입력이 변경되면 어떻게 감지합니까?
- 27. 신청 마감을 어떻게 감지합니까?
- 28. 동영상이 3D인지 어떻게 감지합니까?
- 29. iframe 크기를 어떻게 감지합니까?
- 30. Facebook이 당신이 떨어져 있음을 어떻게 감지합니까?
논리는 다음과 같습니다. http://stackoverflow.com/questions/8806876/1-1-chat-system-using-php-mysql/8807233#8807233 –
이 게시물 참조 : http://stackoverflow.com/questions/887919/user-is-log-in-log-in-php –