如何实现显示在线人员的功能?(象QQ那样)

nbbg 2003-12-14 02:07:07
我在做一个OA系统,想有一个在线短信模块,当进入该页面会显示当前在线的人员列表,然后可以互发消息,但我知道如何实现显示再线人员的功能,我初步想的是通过一个数据库字段,初值是0,当人员登陆时,其值为1,可又不知道当人员下线时,又怎么把该字段变为0,是用session?还是其他什么方法。

有谁做过短信这样功能的经验,介绍介绍,主要要注意哪些方面,先谢谢了。
...全文
84 32 打赏 收藏 转发到动态 举报
写回复
用AI写文章
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
nbbg 2003-12-17
  • 打赏
  • 举报
回复
用上面的方法可能能解决问题,可是我就想知道下面的脚本为什么不可以?请高手帮助一下啊
Session_End中:
ArrayList arr1 = (ArrayList)Application["userid"];
string se = Session["userid"].ToString();
arr1.Remove(se);
Application["userid"]=arr1;
上面代码应该可以啊,可为什么用户关闭了浏览器后,它的ID还在Application中,而我已经在Session_End中Remove了,怎么回事呢?
nbbg 2003-12-17
  • 打赏
  • 举报
回复
up
lyhold 2003-12-16
  • 打赏
  • 举报
回复
我现在还没有好的办法,请高手说说你们的实现方法
yhdhm 2003-12-16
  • 打赏
  • 举报
回复
建议放弃此功能,因为我已经放弃了。
spidertan 2003-12-16
  • 打赏
  • 举报
回复
在数据库里建张在线用户表
lyhold 2003-12-16
  • 打赏
  • 举报
回复
关闭浏览器不回触发session_end事件
xiaomaolover 2003-12-16
  • 打赏
  • 举报
回复
这个问题,我以前问过了。我现在解决了,,

给我分我才告诉你。。
我是用数据库做的。。很好用的呀...........

根你说一遍吧,

A,B,C三个用户

在page-laod里面

每一个人第一次进入这个页面时,,
表里记录下这个用户进入页面的时间和用户名
然后每隔1分种刷新一次,
执行,
对表中的所有登录时间>1分钟的人进行删除(说明他不在线)
如果不大于一分钟的话,update这个用户的登录时间,
,,
具体的你自己再想想吧,,
接分了,,,,,,
nbbg 2003-12-16
  • 打赏
  • 举报
回复
up
nbbg 2003-12-15
  • 打赏
  • 举报
回复
Session_End中:
ArrayList arr1 = (ArrayList)Application["userid"];
string se = Session["userid"].ToString();
arr1.Remove(se);
Application["userid"]=arr1;
上面代码应该可以啊,可为什么用户关闭了浏览器后,它的ID还在Application中,而我已经在Session_End中Remove了,怎么回事呢?

问题能出在哪里啊
0422 2003-12-15
  • 打赏
  • 举报
回复
mark!
billok 2003-12-15
  • 打赏
  • 举报
回复
就是使用Global.asax.cs文件中的Application_Start和Session_End事件,<<asp.net安全性高级编程>>一书中写得很说细
whblxl 2003-12-15
  • 打赏
  • 举报
回复
up
nbbg 2003-12-15
  • 打赏
  • 举报
回复
up
nbbg 2003-12-15
  • 打赏
  • 举报
回复
各位帮帮忙啊,为什么当用户关闭了浏览器后,它的ID还在Application中,而我已经在Session_End中Remove了。
zsww 2003-12-15
  • 打赏
  • 举报
回复
在数据库里建张在线用户表

-----------努力学习 不断实践 虚心讨教---------
nbbg 2003-12-15
  • 打赏
  • 举报
回复
对啊,我也出现过这问题,请高手赐教。
xinshaw 2003-12-15
  • 打赏
  • 举报
回复
UP
我在做这个的时候发现,当用户关闭了浏览器后,它的ID还在Application中,而我已经在Session_End中Remove了,怎么回事呢?
nbbg 2003-12-15
  • 打赏
  • 举报
回复
在数据库里建张在线用户表,是个好方法,我正愁怎么显示如何将arraylist里的内容显示到datagrid中,而且要有连接其他页面的功能。

不用建表也应该有解决的方法吧,有谁知道,帮帮忙。
szj820 2003-12-14
  • 打赏
  • 举报
回复
up
pagefan 2003-12-14
  • 打赏
  • 举报
回复
添加到Application_Start中
ArrayList arr = new ArrayList ();
Application["xxxxx"] = arr;
下面代码:添加到用户登陆时:
ArrayList arr = (ArrayList)Application["xxxxx"];
Session["userName"]="xxxxxxx";
arr.Add(Session["xxxxx"]);
下面代码:添加到Session_End中:
arr.Remove(Session["xxxxxx"]);
加载更多回复(12)

62,254

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧