zoukankan      html  css  js  c++  java
  • 关于用户在线

    //需求如题(估计平均在线人数几百,最大在线人数3000),
    //初步想法如下,欢迎提提意见:
    public class UserOnLine
    {
            
    public static void pageLoad(System.Web.UI.Page page)
            
    {
                
    int minutes = 5;//定义5分钟页面不回传用户下线

                DataTable dt 
    = null;
                
    if(page.Application["UserOnLine"!= null)
                
    {
                    dt 
    = (DataTable)page.Application["UserOnLine"];
                }

                
    else
                
    {
                    dt 
    = new DataTable();
                    dt.Columns.Add(
    "UserName");
                    dt.Columns.Add(
    "FirstLoadTime");
                    dt.Columns.Add(
    "LastLoadTime");
                }


                
    //将当前用户添加到在线用户列表
                string userName = page.Session["username"].ToString();
                DataRow[] rows 
    = dt.Select("UserName='" + userName + "'");
                
    if(rows.Length>0)
                    rows[
    0][2= System.DateTime.Now.ToString();
                
    else
                    dt.Rows.Add(
    new object[]{userName,System.DateTime.Now.ToString(),System.DateTime.Now.ToString()});

                dt.AcceptChanges();

                
    //筛选长时间没有PostBack的用户,认为已经下线
                DataRow[] downRows = dt.Select("Convert(LastLoadTime,'System.DateTime')<Convert('"+System.DateTime.Now.AddMinutes(-minutes).ToString()+"','System.DateTime')");

                
    for(int i=0;i<downRows.Length;i++)
                
    {
                    
    //将downRows[i]的记录保存到数据库
                    
                    downRows[i].Delete();
                }


                dt.AcceptChanges();
                page.Application[
    "UserOnLine"= dt;
            }

        }

    //在每个页面的Page_Load的时候调用此方法;
    //由于我的项目所有的页面都是继承子一个basePage类,该类继承System.Web.UI.Page,所以实际上并不需要改动任何一个页面,而只需要改一下basePage类就可以了。
  • 相关阅读:
    WEB API 系列(二) Filter的使用以及执行顺序
    C# 各个版本特征
    dapper使用
    windows设置自动清理log
    [Mime] MimeReader--读取Mime的帮助类 (转载)
    [Mime] MimeHeaders--MimeHeader帮助类 (转载)
    [Mime] MimeEntity--MimeEntity Mime实体帮助类 (转载)
    [Mime] MediaTypes--电子邮件类型类 (转载)
    [Json] C#ConvertJson|List转成Json|对象|集合|DataSet|DataTable|DataReader转成Json (转载)
    [功能帮助类] JsHelper--Javascript操作帮助类 (转载)
  • 原文地址:https://www.cnblogs.com/acelove/p/86228.html
Copyright © 2011-2022 走看看