社区
Java EE
帖子详情
毕业设计 web聊天室 怎样判断用户已离线
tom_66
2011-03-06 02:57:26
基本上想好了用struts2 hibernate做,聊天那一块也已经用jquery ajax实现了,
但是不知道有什么好的方法来处理用户退出的问题
用户登陆后将用户加到application中好不好?
怎样在用户点击退出按钮或者关闭浏览器时在在线用户列表中删除用户信息?
等级太低,只能给100分。
如果有这一块的源码,希望能分享一下。
各位大哥大姐,老鸟,高手,帮帮忙吧……
...全文
812
47
打赏
收藏
毕业设计 web聊天室 怎样判断用户已离线
基本上想好了用struts2 hibernate做,聊天那一块也已经用jquery ajax实现了, 但是不知道有什么好的方法来处理用户退出的问题 用户登陆后将用户加到application中好不好? 怎样在用户点击退出按钮或者关闭浏览器时在在线用户列表中删除用户信息? 等级太低,只能给100分。 如果有这一块的源码,希望能分享一下。 各位大哥大姐,老鸟,高手,帮帮忙吧……
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
47 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qm4050
2011-03-08
打赏
举报
回复
先在web.xml中配好监听器
<listener>
<display-name>StartListen</display-name>
<listener-class>com.zykj.StartListen</listener-class>
</listener>
监听器代码如下:
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
import com.zykj.dao.UsersOper;
import com.zykj.entity.Users;
public class StartListen implements HttpSessionListener{
public void sessionCreated(HttpSessionEvent arg0) {
}
//用户退出session时。但不会马上执行,tomcat默认为30分钟,你可以更改(/conf/web.xml)
public void sessionDestroyed(HttpSessionEvent arg0) {
try {
Users u = (Users) arg0.getSession().getAttribute("user");
UsersOper uo=new UsersOper();
uo.updateStart(u.getUId(), 3);
uo.deleteTemporaryFriend(u.getUId());
System.out.println(u.getUId()+"下线了");
} catch (Exception e) {
e.printStackTrace();
}
}
}
暗然的白天
2011-03-08
打赏
举报
回复
用户放在一个单例集合里、上线给一个状态添加进去,下线给一下状态并移除。页面定时访问这个集合并展示。消息就放在xml文件里吧,格式比较容易读取。
magong
2011-03-08
打赏
举报
回复
[Quote=引用 28 楼 fclxyz 的回复:]
晚上结贴,在线用户这一块已经解决了,求聊天这一块思路
[/Quote]
聊天嘛,
得每个客户端主动周期性到服务器取新的聊天文本。
强长黑粗硬
2011-03-08
打赏
举报
回复
聊天功能我是客户端定时提交请求,然后查看有没有发给自己的消息。
至于消息的保存,到DB,放在内存,或者写到文件都随便
ma309385560
2011-03-08
打赏
举报
回复
用定时刷新做聊天功能 有点 建议看看推技术
pang040328
2011-03-08
打赏
举报
回复
首先要弄清楚,离线和下线的定义是不一样的,对于在规定时间内无任何操作的行为定义为“离线”,而关闭应用程序的操作被定义为”下线“。对于下线用户的判断,可以在设计数据库时在user表中加上IsOff字段进行判断,对于离线的判断可以加一个时间戳来判断
zhouluok007
2011-03-08
打赏
举报
回复
聊天这块 最好使用AJAX 做到无刷新效果 个人认为用JSON 对象比MAP好用
liguangwen86
2011-03-08
打赏
举报
回复
session 监听器可以看一下
Cike121272604
2011-03-08
打赏
举报
回复
[Quote=引用 28 楼 fclxyz 的回复:]
晚上结贴,在线用户这一块已经解决了,求聊天这一块思路
[/Quote]
聊天思路......麻烦lz说明白点.
Cike121272604
2011-03-08
打赏
举报
回复
[Quote=引用 20 楼 woodlikewater 的回复:]
我觉的应该由客服端 通过ajax定时给服务端发送信息。。 表示他在线。。用struts2 action的一个方法提供页面访问,参数为用户id 和sessionid
用一个map<String,Date> 类型来存储当前在线用户 key存储用户id value存储最新更新时间
当用户访问用struts 对应的在线方法时候。 先判断map里面是否存有对应用户id 不存在则加入。。时间为当前……
[/Quote]
嗯,这个公告就是这么干的,在线聊天好像也这么弄,不知道在这里行不行...
G_beginner
2011-03-08
打赏
举报
回复
[Quote=引用 28 楼 fclxyz 的回复:]
晚上结贴,在线用户这一块已经解决了,求聊天这一块思路
[/Quote]
聊天的思路?
tom_66
2011-03-08
打赏
举报
回复
晚上结贴,在线用户这一块已经解决了,求聊天这一块思路
强长黑粗硬
2011-03-08
打赏
举报
回复
这个就是说的之前问的那个吧。
算法多种多样,LZ选个合适的就好了,不过我觉得定时刷新,服务器负担会不会很重呀?
不过这种基于http的聊天系统,定时刷新倒是免不了的。
另外大家都说用js判断浏览器关闭。
如果该用户是骨灰级,关闭浏览器是用电源开关的怎么办?
或者在偏远山区,总掉电,这个除非他自己来报道,不然谁也不知道吧。
a619225471
2011-03-08
打赏
举报
回复
学习了
tom_66
2011-03-08
打赏
举报
回复
判断用户是否在线那一块早上已经实现了,是根据昨天说用侦听器的那位高手的意识来弄的
帖子结了
veardn
2011-03-08
打赏
举报
回复
如果用户点浏览器“后退”而不关闭浏览器呢
可以让用户每过一段时间向服务器发送一个特定请求表示该用户正在线,如果服务器有1次没接收到某个在线用户的这个请求,则认定该用户离线
shagan
2011-03-08
打赏
举报
回复
1、等待session过期,具体上面有人讲了
2、浏览器动作,比如窗口关闭时,触发一个事件,再调用logout动作。
3、HTTP是无状态,但可以长连接,一旦连接断了,即logout,可网上查commet技术。Gmail用类似技术
焙焙龙
2011-03-08
打赏
举报
回复
HTTP是无状态的,只能通过Session来模拟状态,所以,服务器对客户端的感知是依赖于发起自客户端的请求的。
要想实现聊天的目的,那么客户端必须往服务器发心跳报文,一来报告自己存活,二来轮询服务器上有无自己的消息,如果有的话就通过response带回。
服务器就是一个瞎子,你喊他他才知道是谁,不能指望服务器去判定客户端是否存活,就好想不能让瞎子去判定刚才喊他的人还在不在
bjliuzg
2011-03-08
打赏
举报
回复
<html>
<script language="javascript">
window.onbeforeunload = function()
{
var n = window.event.screenX - window.screenLeft;
var b = n > document.documentElement.scrollWidth-20;
if(b && window.event.clientY < 0 || window.event.altKey)
{
window.event.returnValue = "";
alert('close');
}
}
</script>
上面是判断IE关闭的例子,在这个方法中取得用户信息,利用AJAX和后台通讯,将该用户的登录状态置成未登录,明白了吗,如果不会ajax的话可以再提问。
iamwhee
2011-03-08
打赏
举报
回复
牛X的session
加载更多回复(24)
web
快速开发系统帮助你快速完成计算机
毕业设计
你还在为
web
毕业设计
而头疼吗?学习本课程将帮助你快速完成课程设计,不用求别人。只要你会htnl,java,vue基础即可。让系统帮你自动生成70%的代码,轻轻松松顺利毕业。 轻松解决各种
毕业设计
课题 强大的代码自动...
基于java的
聊天室
系统设计与实现
基于Java的
聊天室
系统设计与实现的性能评估是对系统在特定工作负载下的响应速度、并发性能和资源利用率进行评估和分析,旨在验证系统是否能够满足
用户
在实际使用中的性能需求。1、响应速度评估:响应速度是
聊天室
系统的重要性能指标,它决定了
用户
对系统的响应速度的感受。通过对系统的响应时间进行测量和分析,可以评估系统对
用户
输入的快速响应能力。可以测试不同功能的响应时间,如注册、登录、发送消息、接收消息等操作的响应时间。通过对响应时间进行监控和比较,可以找出响应速度较慢的功能模块,并进行优化,提高系统的响应速度。
C++
毕业设计
——基于 C+++TCP+
Web
socket的即时通信系统设计与实现(毕业论文+程序源码)——即时通信系统
随着网络通信和计算机技术的发展,人们越来越希望能够即时发送和接收互联网消息。与此同时随着互联网的发展在HTML5中提出了
web
socket协议,能更好的节省服务器资源和带宽并且服务器和浏览器能够双向实时通讯。为了能让
用户
体验传统客户端和
web
带来的即时通信结合的超爽体验,本次
毕业设计
将完成
web
端和客户端之间的即时通信系统,并利用在大学所学的知识打造高性能,高并发,高可拓展性服务器。同时更是为了方便人们之间的信息交流,让
用户
随时的接入即时通信,提升人们生活的效率。
IM即时通讯:如何跳出传统思维来设计
聊天室
架构?
因为视频直播业务的大规模扩张,
聊天室
这种功能在最近几年又火了起来。本篇文章将会重点挑选
聊天室
这个典型场景,和大家分享一下网易云信在实现这个功能时是如何做架构设计的。 相关推荐阅读 几十万人同时在线的直播间聊天,如何设计服务端架构? 高并发IM系统架构优化实践 常见的虚拟社群
聊天室
的应用场景非常广,除了传统的图文聊天外,时下流行的视频弹幕、在线秀场、在线教育、游戏互动等各式各样...
IM 即时通讯:如何跳出传统思维来设计
聊天室
架构?
因为视频直播业务的大规模扩张,
聊天室
这种功能在最近几年又火了起来。本篇文章将会重点挑选
聊天室
这个典型场景,和大家分享一下网易云信在实现这个功能时是如何做架构设计的。 相关推荐阅读 几十万人同时在线的直播间聊天,如何设计服务端架构? 高并发 IM 系统架构优化实践 常见的虚拟社群
聊天室
的应用场景非常广,除了传统的图文聊天外,时下流行的...
Java EE
67,513
社区成员
225,879
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章