있습니다 방법을 asp.net 멤버쉽 공급자, 특히 IsUserOnline() 및 CountUsersOnline()과 같은 것에서이 작업을 수행 할 수 있습니다. 이 방법의 유일한 문제점은 실제로는 절름발이라는 것입니다. 멤버쉽 공급자의 LastActivityDate()와 web.config에서 설정할 수있는 창에 따라 다릅니다. 멤버 자격 공급자 플러스의 Web.config의 시간 윈도우와의 마지막 만남이 만료되지 않은 경우 즉, 사용자는 온라인으로 간주됩니다.
우리는이 scenairo를 가져다가 혜성 서버를 설정하고 웹 서버를 10 분마다 핑에 의해 우리를 위해 일했다. 웹 서버가 핑 (ping)되면 구성원 공급자의 LastActivityDate를 업데이트합니다.
우리 12 분으로 활동 창뿐만 아니라 세션 타이머를 설정합니다. 이를 통해 우리는 누가 약 10 분의 정확도로 온라인 상태인지 파악할 수 있습니다.
다음은 Web의 라인입니다.설정 :
function getData() {
$.getJSON("/Account/Timer", gotData);
}
// Whenever a query stops, start a new one.
$(document).ajaxStop(getData, 600000);
// Start the first query.
getData();
는 여기에 우리의 서버 코드입니다 : 여기
<membership userIsOnlineTimeWindow="12">
jQuery를 혜성 서버입니다
public JsonResult Timer()
{
MembershipUser user = Membership.GetUser(User.Name);
user.LastActivityDate = DateTime.Now;
Membership.UpdateUser(user);
// You can return anything to reset the timer.
return Json(new { Timer = "reset" }, JsonRequestBehavior.AllowGet);
}
이 서버 코드는 어디에 추가합니까? – DoIt