日期:2014-05-18  浏览次数:20553 次

Java Web 即时通讯功能的实现
现在做一个项目需要做一个即时通讯的功能  可以点对点发送信息,也可以群发 当用户不在线的时候等用户下次登录会在右下角自动弹出提示    大家有没有做过类似的程序  
我的想法是 把信息存到数据库中  但是这样就会每隔一定的时间就读取数据库看看有没有新的信息,这样我感觉有点浪费服务器的资源 大家有没有其他解决方案呢?

------解决方案--------------------
具体参观web qq 

没做过、  不过应该也和socket有关系吧、
------解决方案--------------------
看你的标题  应该是Web   Web要实现这个就很难了   你要做的应该是两个客户端浏览器之间的即时通讯吧    
AJAX异步通讯技术技术 ,
其实AJAX异步通讯技术,就是浏览器定时向服务器发送一个试探性的请求,去询问服务器端有没有新的数据需要更新。
至于这个技术怎么用,,,不是一篇帖子能讨论清楚地,,,多去网上找点资源  
推荐,写Web聊天室  用DWR,这是一个包  该报封装了一些常用的AJAX技术。。
------解决方案--------------------
浪费服务器的资源 大家有没有其他解决方案呢?
怎么浪费了啊?
就一个定时刷新而已 

------解决方案--------------------
利用comet试一试,服务器端推送技术
------解决方案--------------------
jms?
------解决方案--------------------
搞一个IM后台就是了,基于jabber的开源服务器有很多,10w以内可以考虑用openfire,30w以内考虑tigase
------解决方案--------------------
不能用定时刷新,具体使用下面的技术:

JMS(持久,即durable)
数据库
AJAX
PUSH技术(不是AJAX的取啊),这个不一样,就是服务端有更新自动向客户端push一个消息。这样的好处在于,不浪费服务器资源,因为如果用的是AJAX轮循,这会给服务器数据库带来压力,而PUSH,则是主动推。

AJAX只负责显示,关于PUSH技术,OPENSOURCE很成熟了,可以去下载一个框架来试试