如何纪录在线人员?渴求思路

cat54 2003-08-26 09:00:44
我用一个数据表纪录局域网内上线的人员,其登陆的时候,添加纪录,退出的时候用form的closed事件删除纪录。

但是,如果他非正常退出,如死机,断电,就不会删除纪录。

该当如何?
...全文
184 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
ganenpingsohucom 2003-09-04
  • 打赏
  • 举报
回复
也可以有客户端定期发送消息,服务器检查,如果某个客户端在一段时间内没有消息发送,就认为断线了,如果再过一段时间没有消息,就认为离线了
cat54 2003-09-04
  • 打赏
  • 举报
回复
诚如阿飞兄所言,只能是有间隔的循环测试呢。

终究觉得是不好啊。算了,顶一次。然后大家拿分
orcale 2003-09-04
  • 打赏
  • 举报
回复
去找一下asp寫聊天的代碼看看就明白了
menuvb 2003-09-04
  • 打赏
  • 举报
回复
学习一下.
zybhappy 2003-09-04
  • 打赏
  • 举报
回复
重新建立一个检查的线程,隔一段时间执行一次。只好主动检查吧?
bucher 2003-09-04
  • 打赏
  • 举报
回复
赞成使用ganenpingsohucom(倾城之恋) 的方法。
我们的系统就是这样做的,客户端在login之后会得到一个SessionID,然后每隔1分钟执行一次服务器上的KIT(Keep In Touch)方法,该方法会更新登陆数据库数据中指定Session的KIT字段为当前时间。
我在SQLServer里面写了一个存储过程用于删除KIT在2小时以前的,通过定时执行该存储过程就可以实现自动Session回收。
cloudchen 2003-09-04
  • 打赏
  • 举报
回复
用每个在线用户进行探测,或者使用global.asax
cnhgj 2003-08-27
  • 打赏
  • 举报
回复
数据库
飞不动 2003-08-27
  • 打赏
  • 举报
回复
你是WinForm应用程序?
可不可以在程序中每隔一段时间检查一下数据中的每个成员是否在线。
再刷新数据库。
cat54 2003-08-27
  • 打赏
  • 举报
回复
在windows程序里可以使用 session?

寂寞兄,你说的
当这个人的会话中断,或是超时时,析构函数里减去他

这个条件不好判断阿,我就是要知道何时会话中断了。
Brunhild 2003-08-26
  • 打赏
  • 举报
回复
可以在Global.asax的Session_End中填加删除在线人员的代码。
这个事件实在会话超时或调用Session.Abandon()时发生,以通过Session.Timeout来调整会话的反应时间,同时要在WEB PAGE中每隔一段时间刷新一次,以保持SESSION。
gOODiDEA 2003-08-26
  • 打赏
  • 举报
回复
当Session到期后自动删除用户记录
benlee 2003-08-26
  • 打赏
  • 举报
回复
可以对会话进行操作
另一种是在人员类里加一个静态变量。当一个人登陆时实例一个人员对象,现时记录这个人员,在类的静态变量里。当这个人的会话中断,或是超时时,析构函数里减去他!人员表可以放在数组里!

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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