怎样准确统计聊天室人数? 注:没有使用JAVABEAN,全部是JSP 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http是非状态协议,所以服务器不知道客户端什么时候断开连接,一般采用定时查询的方法,例如30秒检查session还是否有效。 解决思路: 提供给你一个解决思路,是否可行请你斟酌。 1。客户端连接到服务器端后在客户端启动一个线程,该线程每10秒向服务器端发送一个信息,如“(用户名):I AM ONLINE” 2。同时,服务器端也启动一个线程,当接收到客户端发送的信息时,将登录用户名分离出来,表示该用户仍然在线。 3。将以上判断到还在线的用户名保存到另外的一个数组中(确认在线的用户清单) 4。服务器端可以每半分钟或更长、更短的时间从以上的在线用户清单数组中把用户清单取出来,同时清空数组。 这样,当客户端退出聊天室后,客户端就不会向服务器端发送在线的信息,半分钟后服务器端就会将其从在线用户中删除(因其不会出现在确认在线的用户清单中)。 聊天室的话还可以这样:在聊天室的主页面的body的onUnload()事件里把用户删除可以认为只要他离开了主页面也就是离开了聊天室 longzu(龙族) :假如聊客在发呆或干别的事去了,而机器一直是开着的,岂不惨了?此时程序认为该聊客一直在线, 解决思路: 提供给你一个解决思路,是否可行请你斟酌。 1。客户端连接到服务器端后在客户端启动一个线程,该线程每10秒向服务器端发送一个信息,如“(用户名):I AM ONLINE” 2。同时,服务器端也启动一个线程,当接收到客户端发送的信息时,将登录用户名分离出来,表示该用户仍然在线。 3。将以上判断到还在线的用户名保存到另外的一个数组中(确认在线的用户清单) 4。服务器端可以每半分钟或更长、更短的时间从以上的在线用户清单数组中把用户清单取出来,同时清空数组。 这样,当客户端退出聊天室后,客户端就不会向服务器端发送在线的信息,半分钟后服务器端就会将其从在线用户中删除(因其不会出现在确认在线的用户清单中)。客户端是不是用一个iframe来进行这个操作?设置一个时间间隔,用javascript向服务器请求?我想知道还有没有更好的解决方法 用session不好吗?如果过期就删掉 谢谢大家!!我本来是用了一个FLAG在数据库里标示,如果在线,就不允许同名再次登陆;因为存在上面请教大家的问题,所以,我只好把这个限制条件去掉了。ship(红色战袍) :这个问题我可以解决,如果四分钟不说话,就用leshui(大象无形)(有物混成,先天地生) 的方法解决了。我就是不知道为什么有时候会每次都调用logout.jsp,有的时候按了注销按钮也没用,有的时候,明明注销成功了session也没有了,可是他竟然还可以说话!!这是正常的?还是程序有疏漏?感谢:longzu(龙族) 和yinxiaochun(青蛙) 的思路,我打算试一下!唉,昨天已经交件了,以上各位IF还GZ此问题可以继续讨论,ELSE我马上结贴!! 哪位高手给个struts2连接数据库的,最好有注册和登录的功能..... 新手想问些问题 希望大家指教 接口问题 为什么避免相关子查询 生成PDF文档 Eclipse/Lomboz 装 Properties Editor 插件为什么没用? spring在业务层控制事务问题 手动排序问题! 求高手! [提问]weblogic里添加用户的办法 如何在XML中使用JSP 在servlet中get和post请求区别是什么呢? struts在显示时,用什么标签进行格式化数据,如对数字进行保留多少位并四舍五入?
提供给你一个解决思路,是否可行请你斟酌。
1。客户端连接到服务器端后在客户端启动一个线程,该线程每10秒向服务器端发送一个信息,如“(用户名):I AM ONLINE”
2。同时,服务器端也启动一个线程,当接收到客户端发送的信息时,将登录用户名分离出来,表示该用户仍然在线。
3。将以上判断到还在线的用户名保存到另外的一个数组中(确认在线的用户清单)
4。服务器端可以每半分钟或更长、更短的时间从以上的在线用户清单数组中把用户清单取出来,同时清空数组。 这样,当客户端退出聊天室后,客户端就不会向服务器端发送在线的信息,半分钟后服务器端就会将其从在线用户中删除(因其不会出现在确认在线的用户清单中)。
在聊天室的主页面的body的onUnload()事件里把用户删除
可以认为只要他离开了主页面
也就是离开了聊天室
假如聊客在发呆或干别的事去了,而机器一直是开着的,岂不惨了?此时程序认为该聊客一直在线,
提供给你一个解决思路,是否可行请你斟酌。
1。客户端连接到服务器端后在客户端启动一个线程,该线程每10秒向服务器端发送一个信息,如“(用户名):I AM ONLINE”
2。同时,服务器端也启动一个线程,当接收到客户端发送的信息时,将登录用户名分离出来,表示该用户仍然在线。
3。将以上判断到还在线的用户名保存到另外的一个数组中(确认在线的用户清单)
4。服务器端可以每半分钟或更长、更短的时间从以上的在线用户清单数组中把用户清单取出来,同时清空数组。 这样,当客户端退出聊天室后,客户端就不会向服务器端发送在线的信息,半分钟后服务器端就会将其从在线用户中删除(因其不会出现在确认在线的用户清单中)。
客户端是不是用一个iframe来进行这个操作?设置一个时间间隔,用javascript向服务器请求?
我想知道还有没有更好的解决方法
因为存在上面请教大家的问题,所以,我只好把这个限制条件去掉了。ship(红色战袍) :这个问题我可以解决,如果四分钟不说话,就用
leshui(大象无形)(有物混成,先天地生) 的方法解决了。我就是不知道
为什么有时候会每次都调用logout.jsp,有的时候按了注销按钮也没用,
有的时候,明明注销成功了session也没有了,可是他竟然还可以说话!!
这是正常的?还是程序有疏漏?感谢:longzu(龙族) 和yinxiaochun(青蛙) 的思路,我打算试一下!唉,昨天已经交件了,以上各位IF还GZ此问题可以继续讨论,ELSE我马上
结贴!!