ASP.NET MVC3 Webアプリケーションに、現在サイトを閲覧しているユーザーの数を表示する小さなメッセージを追加したいと思います。
私は現在、Global.asax内の静的プロパティをインクリメントまたはデクリメントするためにアプリケーションイベントを使用Session_Start
しています。Session_End
これは機能しますが、正確ではありません。私のセッションタイムアウトは20分に設定されているので、更新の間に大きな遅延があります。
これを行うためのよりエレガントで正確な方法はありますか?
Session.Abandon()
javascriptイベントを単純に実行するAJAXを介してアクションを呼び出すことを考えましたwindow.onbeforeunload
が、これはユーザーがページを変更するたびに呼び出されます。ユーザーがいつブラウザを閉じるか、ドメインを離れるかを判断する方法はありますか?
ヒント、コメント、コード例は大歓迎です!
現在のコードの関連部分は次のとおりです。
public class MvcApplication : System.Web.HttpApplication
{
public static int UsersConnected { get; set; }
protected void Session_Start(object sender, EventArgs e)
{
Application.Lock();
UsersConnected++;
Application.UnLock();
}
protected void Session_End(object sender, EventArgs e)
{
Application.Lock();
UsersConnected--;
Application.UnLock();
}
...
}