JAVA怎么样实现即时消息提醒?

水墨画 2009-12-29 05:05:58
JAVA怎么样实现即时消息提醒?

如题,要求性能高。高手帮忙!
问题补充:说说思路也行,如果有实例就更好。
采用B/S架构。
使用STRUTS+SPRING+HIBERNATE,
就象小秘书的那类即时消息,即:当A向B发送消息后,B收到消息后会有所提示。
这样B就不用实时的打开网页,就可以看到是否有新的任务.

注:不需要B来回复消息,只要B能看到有新消息就可以了.
...全文
6717 47 打赏 收藏 转发到动态 举报
写回复
用AI写文章
47 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuxiaofeigoodluck 2012-02-07
  • 打赏
  • 举报
回复
最好是使用jms服务来做
dafa1892 2011-01-06
  • 打赏
  • 举报
回复
dwr 应该行
莫宗毅 2010-11-15
  • 打赏
  • 举报
回复
学习了呀,一直在找这方面的解决方案,先回去研究一下,再来发言
小沙同歇 2010-06-23
  • 打赏
  • 举报
回复
我在做一个及时提醒的一个模块
这个地方我初次涉及,不知道该怎么下手
希望高手们赐教
(该模块实现备忘功能,定时提醒 ,和有信息提醒)
email:sqjhwl@163.com
zhangjun460 2010-04-30
  • 打赏
  • 举报
回复
怎么办 我也想知道
teemai 2010-01-02
  • 打赏
  • 举报
回复
学习到了。
enxiuwang 2010-01-02
  • 打赏
  • 举报
回复
comet就是楼主要的答案,但如果理解了它的原理,这个功能可以自己写,原理:
1、浏览器向服务器发一个请求
2、服务器接到请求后在servlet或struts的Action中用线程将这个请求休眠,使服务器不直接响应结束,这样浏览器与服务器就建立了一个长连接,这是即时通信的基础。
3、设置response的属性,使其可以多次响应,这样只要有人给它消息,就可以out一句话,这句话是个script代码,浏览器就收到消息了。
junyun414 2010-01-02
  • 打赏
  • 举报
回复
前不久做了个聊天的,我问了一些人,人家也是说用AJAX定时刷的,几个人用的话是可以,就是不知道人多了用可不可以,我也没有测
limiao_java 2010-01-01
  • 打赏
  • 举报
回复
写一个方法检查是否有新信息的 (method A)

然后循环递归调用

如果发现有新信息则调用查询信息的方法(method B)
,成功之后再去调用(method A)
hongjn 2010-01-01
  • 打赏
  • 举报
回复
帮顶
cwhqt 2010-01-01
  • 打赏
  • 举报
回复
HTTP轮询
longforblossom 2010-01-01
  • 打赏
  • 举报
回复
ajax定时发送请求 太多了 会不会影响性能?
没有一种类似监听的方式么?
学习,,,
lihui820905 2009-12-31
  • 打赏
  • 举报
回复
我也去了解了下comet,发现此架构是可以实现楼主的要求的
lihui820905 2009-12-31
  • 打赏
  • 举报
回复
[Quote=引用 34 楼 javaalpha 的回复:]
引用 16 楼 lihui820905 的回复:
第一,java实现即时消息提醒方法很多。
第二,B/S架构就没办法即时。这是B/S架构本身决定的(请求-响应模式),服务器不会主动推送消息给客户端的。所以只能是客户端定时去向服务器取消息。所以上面大家说的ajax是目前流行的做法


轮询数据库
[/Quote]
不明白,请赐教。轮询数据库就可以主动向浏览器客户端发消息了?
JavaAlpha 2009-12-31
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 lihui820905 的回复:]
第一,java实现即时消息提醒方法很多。
第二,B/S架构就没办法即时。这是B/S架构本身决定的(请求-响应模式),服务器不会主动推送消息给客户端的。所以只能是客户端定时去向服务器取消息。所以上面大家说的ajax是目前流行的做法
[/Quote]

轮询数据库
水墨画 2009-12-31
  • 打赏
  • 举报
回复
cserbaby 2009-12-30
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 wwttyy 的回复:]
不想让用户一直开着网页,而是想,采用一个类似于QQ一样的,登录完是放小在状态栏的,有消息时有闪动,然后用户就可以打开看到,
[/Quote]
楼主这个想法在纯B/S下是不可能实现的,这是由B/S本身据决定的(楼上已经有人作了原因分析)
如果楼主一定要实现类似效果的话,那就肯定得写一个客户端,用来捕获服务端消息,然后再把这个消息弹出来即可.
peanut942692 2009-12-30
  • 打赏
  • 举报
回复
关注
Ak混子 2009-12-30
  • 打赏
  • 举报
回复
setInterval + Ajax
lihui820905 2009-12-30
  • 打赏
  • 举报
回复
第一,java实现即时消息提醒方法很多。
第二,B/S架构就没办法即时。这是B/S架构本身决定的(请求-响应模式),服务器不会主动推送消息给客户端的。所以只能是客户端定时去向服务器取消息。所以上面大家说的ajax是目前流行的做法
加载更多回复(27)

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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