⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 getonlineusers.aspx

📁 一个聊天室源码 cooo ooo ooo l
💻 ASPX
字号:
<%@ import namespace="System" %>
<%@ import namespace="System.Xml" %>
<%@ language="C#" runat=server EnableSessionState="True"  debug=True%>
<script language="C#" runat="server">
//Page_Load在页面自动打开或刷新时调用getNumber()显示在线用户列表
//getNumber被重载,有带参数和不带参数两种形式
void Page_Load(Object sender,EventArgs E)
{
 if(!IsPostBack)
 {
 getNumber();}
 }
 //带参数的getNumber在用户单击"刷新"按钮时被调用显示在线用户列表
 void getNumber(Object sender,EventArgs E)
 {
 getNumber();
 }
 //重载的getNumber在Page_Load中被调用显示在线用户列表
 void getNumber()
 {
  try{
  //创建访问XML文档的XmlDocument对象
  XmlDocument xml_online=new XmlDocument();
  xml_online.Load(Server.MapPath("/chatdata/onlineusers.xml"));
  XmlNode root_online=xml_online.DocumentElement;
  
  //检查是否有在线用户长时间没发言,以10分钟为期限
  XmlNode node;
  int last,now;
  String name,timestr,changed="False";
  DateTime currentTime=new DateTime();
  currentTime=System.DateTime.Now;
  now=currentTime.Minute;
  int i;
  for(i=root_online.ChildNodes.Count-1;i>=0;i--)
  {
   //取得在线用户昵称,最新时间
   node=root_online.ChildNodes[i];
   name=node.ChildNodes[0].InnerText;
   timestr=node.ChildNodes[1].InnerText;
   
   //将用户最新时间从字符串转换为整数,便于比较
   last=Int32.Parse(timestr);
   if(now<last)
   {now=now+60;}
   
   //将长时间发呆的用户赶出论坛,从在线用户中删除该用户
   //同时发送管理员信息
   //判断用户上次发言时间是否为10分钟以前,
   //是则从在线用户中删除该用户
   if ((now-last)>10)
   {
       //删除用户
       root_online.RemoveChild(node);
       //添加管理员信息
       Add_news(name);
       changed="Ture";
       }
       }
       
       //changed=="True"表示从onlineuser.xml中删除了某个用个用户
       //所以需要保存
       if(changed=="True")
       {
          xml_online.Save(Server.MapPath("/chatdata/onlineusers.xml"));
        }
        
        //显示在线用户名单
        i=root_online.ChildNodes.Count;
        int j;
        Response.Write("<div nowrap='False'>");
        Response.Write("<p/><center>共<b>"+i.ToString()+"</b>人在线</center><br>");
        for(j=i-1;j>=0;j--)
        {
            node=root_online.ChildNodes[j];
            Response.Write("<br>"+node.ChildNodes[0].InnerText);
         }
         Response.Write("</div>");
         }
         catch(Exception e)
         {
             //当出错时自动链接到error.htm页面,显示相应的提示信息
             Response.Redirect("error.htm");
             return;
             }
          }
          
          //Add_news用于向chatnews.xml中添加用户被赶出聊天室的信息 
          void Add_news(String name)
          {
               //创建访问XML文档的XmlDocument 对象
               XmlDocument xml_chatnews=new XmlDocument();
               xml_chatnews.Load(Server.MapPath("/chatdata/chatings.xml"));
               XmlNode root_chatnews=xml_chatnews.DocumentElement;
               
               //添加管理员的欢迎信息到聊天信息文件chatnews.xml中
               //聊天信息保存在"聊天信息"元素中
               //"聊天信息"元素包括"发送者","接受者","表情"
               //"悄悄话","颜色"和"消息"等子元素
               // 创建新的"聊天信息"元素
               XmlNode newElem=xml_chatnews.CreateElement("聊天信息");
               
               //创建"发送者"子元素
               XmlNode subElem=xml_chatnews.CreateElement("发送者");
               subElem.InnerText="管理员";
               //将"发送者"子元素添加到"聊天信息"元素中
               newElem.AppendChild(subElem);
               
               //创建"接受者"子元素
               subElem=xml_chatnews.CreateElement("接受者");
               subElem.InnerText="大家";
               //将"接受者"子元素添加到"聊天信息"元素中
               newElem.AppendChild(subElem);
               
               //创建"表情"子元素
               subElem=xml_chatnews.CreateElement("表情");
               subElem.InnerText="";
               //将"接受者"子元素添加到"聊天信息"元素中
               newElem.AppendChild(subElem);
               
               //创建"悄悄话"子元素
               subElem=xml_chatnews.CreateElement("悄悄话");
               subElem.InnerText="False";
               //将"悄悄话"子元素添加到"聊天信息"元素中
               newElem.AppendChild(subElem);
               
               //创建"颜色"子元素
               subElem=xml_chatnews.CreateElement("颜色");
               subElem.InnerText="";
               //将"颜色"子元素添加到"聊天信息"元素中
               newElem.AppendChild(subElem);
               
                //创建"消息"子元素
               subElem=xml_chatnews.CreateElement("消息");
               subElem.InnerText=name+"长时间发呆,被赶出聊天室";
               //将"消息"子元素添加到"聊天信息"元素中
               newElem.AppendChild(subElem);
               
              //将新建的“聊天信息”元素添加到聊天信息文件chantnews.xml前面
          root_chatnews.InsertBefore(newElem,root_chatnews.FirstChild);
         xml_chatnews.Save(Server.MapPath("/chatdata/chatings.xml"));
         return;
         }
         </script>
         <html>
         <!--设置60秒自动刷新在线用户名单-->
         <% Response.AddHeader("Refresh","60");%>
         <body bgcolor="#669999">
           <br>
           <center>
             <form id="form1" method="post" runat="server">
              <asp:Button ID="button1" Text="刷新"
               OnClick="getNumber" Runat="server">
               </asp:Button>
               </form>
               </center>
               </body>
               </html>
         
     
               
               
        
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -