2012-11-28 4 views
1

저는 웹 개발에 익숙하지 않고이 소셜 네트워킹 사이트에서 일하고 있습니다.온라인 상태 추적 중?

이제 사람이 온라인 상태인지 보여줄 수있는 기능을 추가하고 싶습니다.

이제이 작업을 수행하는 방법 중 하나는 온라인 상태 비트를 데이터베이스에 유지하는 것입니다.

제 질문은 동적으로 수행하는 방법입니다. 페이지가로드되고 사용자 (연결)가 온라인 상태가되었다고 가정 해보십시오. 해당 페이지의 해당 연결 상태를 어떻게 동적으로 변경합니까?

이 유형의 추적에 사용할 수있는 도구 (라이브러리)가 있는지 알고 싶었습니다. 내 사이트는 Python에서 장고 프레임 워크를 사용하고 있습니다. 뭔가 자바 스크립트/jquery를 사용하여 수행 할 수 있습니다 생각합니다. 나는 올바른 방향으로 가고 있는지 또는 내가 조사해야 할 것이 있는지 알고 싶다.

+3

데이터베이스가 잔인한 IMO 일 것입니다. Redis 등의 메모리 내 솔루션을 살펴보십시오. –

+0

@ SanjayT.Sharma 감사합니다. – Mayank

+0

서버에 대한 연결은 요청 - 응답을 기반으로하므로 사용자가 온라인 상태인지 여부를 알 수 없으며 마지막으로 온라인 상태 였을 때만 알 수 있습니다. [this] (http://stackoverflow.com/a/12768482/1247955) 답변이 도움이되는지 확인하십시오. – Bula

답변

0

Sanjay가 말한 것처럼 Django 캐시 (Redis 또는 Memcache)와 같은 메모리 솔루션 (온라인 상태는 매우 간단하게 사용합니다)을 선호합니다.

이미로드 된 웹 페이지에서 사용자의 온라인 상태를 간단하게 업데이트하려면 jQuery, AJAX 등의 lib를 사용하여 사용자의 상태를 나타내는 URL을 폴링 한 다음 원하는 상태를 보여주는 귀하의 페이지. 15 초마다이 페이지를 너무 자주 폴링하지 마십시오.

1

OneToOneField부터 User까지 새 모델을 만듭니다. 또는 User을 서브 클래 싱하는 경우 django 1.5에서 사용자 정의 User을 사용하거나 사용자 프로파일을 사용하는 경우 해당 모델에 필드를 추가하기 만하면됩니다.

모든 요청시 각 사용자의 last_activity 필드를 자동으로 업데이트하는 사용자 지정 미들웨어를 작성하십시오.

timedelta를 사용하는 모델 중 하나에 is_online 메서드를 작성하여 온라인 상태인지 여부에 대한 부울을 반환하는 사용자의 비활성 기간을 결정합니다. 예를 들어, last_activity이 15 분 이상 경과 한 경우 False을 반환하십시오.

특정 사용자의 온라인 상태를 반환하기 위해 jQuery ajax를 통해 폴링 된보기를 작성하십시오.

관련 문제