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类就可以了。
  • 相关阅读:
    飞机游戏
    nodejs制作爬虫程序
    关于解析字符串
    引用nodejs的url模块实现url路由功能
    appium定位学习
    appium移动端自动化测试的一些感想
    appium的工作原理
    appium desktop 定位弹出框时报错
    APPium连接真机输入框中输入的内容与代码中不一致
    appium 链接真机后,运行代码,但是APP并没有启动
  • 原文地址:https://www.cnblogs.com/acelove/p/86228.html
Copyright © 2011-2022 走看看