내 웹 사이트에 대한 채팅을하고 있습니다. 이를 위해 온라인에 등록 된 사용자의 수를 찾아야합니다. 세션 수를 세어 테이블에 저장합니다. 로그 아웃하면 이름이 해당 테이블에서 제거됩니다. 이제 로그 아웃을 클릭하지 않고 탭을 직접 닫으면 오프라인이되지 않습니다. 그들의 이름은 여전히 테이블에 있습니다. 그래서 그들을 제거하기 위해, 나는 매우 복잡한 알고리즘을 온라인에서 발견했습니다. 그것은 5 분마다 그 테이블을 비우고 다시 온라인 인 사람들의 이름을 덧붙입니다. 그러나 문제는 이것이 발생하는 동안 채팅이 중단된다는 것입니다. 그래서이 문제를 해결할 방법이 필요합니다.온라인 사용자를 찾는 방법
답변
"마지막 활성"열을 추가하십시오. 사용자가 브라우저 (예 : AJAX를 통해 더 많은 메시지를 폴링하는 것을 포함 할 수 있음)를 수행 할 때마다 해당 열을 NOW()
으로 업데이트합니다. 테이블은 괜찮지 만, 아마도 옵션 개선 사항 (사이트의 부하에 따라)에서 이전 기록을 삭제
SELECT user.name FROM user
WHERE DATE_ADD(user.last_active, INTERVAL 5 MINUTE) >= NOW();
: 그런 다음 활성 사용자를 찾는 쿼리는 식으로 뭔가를 할 수 있습니다.
두 가지 해결책이 있다고 생각합니다.
1) 1. 타임 스탬프를 저장하고 cronjob을 만드십시오. cron check는 1 분마다 또는 2 분 정도의 항목이 얼마나 오래된지를 확인하고 예를 들어 5 분보다 오래된 항목을 삭제합니다.
2.) 두 번째 방법은 포인트 1과 동일한 기능을하는 funktion을 만들지 만 모든 페이지 호출마다 함수를 실행합니다. 그러나 이것은 실제로 효과가 없으며 많은 부담을줍니다.
아마이 조사 : destroy session on window close?
대신 세션을 파괴하는 당신은 행을 삭제하는 쿼리를 실행할 수 있습니다. 당신은 DB 테이블에 세션을 저장하는 경우
[onunload] (http://www.w3schools.com/jsref/event_onunload.asp) 이벤트를 사용할 수도 있습니다. – ceving
쉽게 활성 세션을 확인할 수 있습니다, 좀 더이 문제를 이해하기 위해 PHP 매뉴얼 http://in.php.net/manual/en/function.session-set-save-handler.php
- 1. 현재 온라인 사용자를 추적하는 가장 좋은 방법
- 2. 기록 된 온라인 사용자를 얻는 방법?
- 3. facebook app 온라인 사용자를 얻는 방법
- 4. 사이트가 온라인/오프라인으로가는 이유를 찾는 방법
- 5. 온라인 사용자를 관리하기위한 Node.js 모듈?
- 6. 트위터 API에서 가장 인기있는 사용자를 찾는 방법
- 7. masterpage에서 사용자 컨트롤의 온라인 사용자를 표시 하시겠습니까?
- 8. 온라인 사용자를 로그 아웃하는 관리자 옵션을 제공하는 방법
- 9. Zend Framework를 사용하여 로그인 한 온라인 사용자를 확인하는 방법
- 10. xmpp 프레임 워크를 사용하여 온라인 facebook 사용자를 얻는 방법
- 11. 웹 사이트에서 얼마나 많은 사람들이 온라인 상태인지 찾는 방법
- 12. 빠른 온라인 확인 방법
- 13. Rails 2.3.5에서 현재 로그인 한 사용자를 찾는 방법은 무엇입니까?
- 14. Active Directory에서 GUID (objectGUID) 매개 변수가있는 사용자를 찾는 방법
- 15. 방법 온라인 사용자
- 16. Google지도에서 내 응용 프로그램 사용자를 찾는 방법은 무엇입니까?
- 17. 2 인용 퀴즈를 풀기 위해 실시간으로 온라인 사용자를 추적하십시오.
- 18. 현재 온라인 사용자를 볼 수있는 코드가 올바르지 않습니다.
- 19. 데이터베이스 테이블이나 메모리에서 온라인 사용자를 추적하는 것이 좋은 생각입니까?
- 20. 모바일 앱 사용자를 온라인 프로필에 묶는 가장 좋은 방법은 무엇입니까?
- 21. 긴 폴링 방법으로 얼마나 많은 온라인 사용자를 찾을 수 있습니까?
- 22. 타사 사용자를 위해 온라인 지불을 수락하고 커미션을 청구하는 방법은 무엇입니까?
- 23. 모든 온라인 사용자 중 특정 사용자를 강제로 로그 아웃
- 24. 게임이 다른 온라인 사용자를 어떻게 검색하며 모든 사용자의 목록을 표시합니까?
- 25. signalR을 사용하여 실시간으로 온라인 사용자를 표시하는 것이 좋습니다.
- 26. 역할이없는 사용자를 얻는 방법
- 27. MySQL4에서 사용자를 만드는 방법
- 28. 강제로 사용자를 저장하는 방법?
- 29. iframe에서 사용자를 추적하는 방법
- 30. Oracle에서 사용자를 복제하는 방법
사용 http://xmpp.org/ – Katti
을 확인하시기 바랍니다 데이터베이스 테이블 구조와이 테이블 구조가 서로 관련되는 f}을 설명해야합니다. 이상적으로 3 개의 테이블이 있어야합니다. 하나는 사용자 정보 용, 다른 하나는 채팅 텍스트 저장 용, 다른 하나는 활성 사용자 목록 저장 용입니다. '채팅이 중단되었습니다'라는 의미를 설명해야합니다. 사용자가 채팅 기록을 잃어 버렸거나 시스템이 테이블을 비운 동안 채팅을 할 수 없다는 것을 의미합니까 (이는 일종의 잠금을 의미 함). –