站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2EE 专题怎么实现论坛里那种“你有新消息”的提示功能?

怎么实现论坛里那种“你有新消息”的提示功能?

摘要: 怎么实现论坛里那种“你有新消息”的提示功能?


实时的
消息应该是存在数据库里的吧?


关注


方法有很多,要是希望性能高的话,需要用商用的WebServer


1/如果是把消息写入数据库,那就可以实时的去读取数据库,有记录就显示出来撒.
2/像QQ那样来完成,这个我也在探索之中
3/问问别人有没有更好的办法.


基于B/S结构的不可能实现像C/S那样的实时。

比较通常的做法是在客户端用脚本语言设置一个定时器,定时的查询服务端的消息。


楼上的,想想10000个用户同时登入论坛,全部定时轮询,服务器就垮了吧
很多论坛都提供实时的消息提醒啊,只是想知道他们怎么实现的


应该可以解决的!象一个jsp的OA就有这样的功能可以做一个触发,当出发消息的时候,就可以做到


JMS


当用户登入时,访问一下消息.
在服务器端建一个线程,定时向已登陆的用户群发消息?
猜测&&关注


关注


可以找一个bbs的源代码看一下,我前段时间曾经看过类似的代码!


页面定时刷新即可


Ajax技术
或者一个小iframe定时刷新


卷帙浩繁,懒人期待有人直接贴代码
在下现在做的就是:
发一条命令->直接存在发命令表里
收命令的一端,页面1min刷新一次,刷新一次就读一次数据库。
但是,每天会有几百个人登入,全天候等待自己的命令,尽量少延迟收令,每个都这么刷新的话,肯定不行啊


大家担心的性能问题,其实要看你后台是如何设计了。
目前的服务器性能都应该不成问题,而性能瓶颈往往出现在对数据库的查询上,查询语句复杂、语句条数多,这些都是造成大用户量访问时,服务器总体性能下降的原因。
针对楼主的问题,说的深奥一点就是可以用ajax来解决,说的简单一点就是一小段定时循环的javascript。
用这个js每分钟(自定义)从服务器请求该用户是否有新消息,有的话就接收消息。然后用js在页面某个地方显示一个会闪的gif,自动提示消息的功能就ok了。
主要是考虑后台如何查询这些信息。信息一般都存在数据库,这个没有疑问,但不能主动去数据库查询这些信息。在数据库中应该有一张专门放置要提示的信息的表,其他信息新增模块每次产生一条新信息,除了记录到信息模块的表中,还应该顺便记录到这张临时表中。
接着要有一个定时程序,可能每分钟一次,从临时表中读取所有数据(这样很快,一次性查出所有用户的信息),然后将这些数据写入服务器application上下文。
前台有一个服务类,用来和页面的ajax请求交互。这个类接受到用户的刷新请求,开始到application上下文中的信息列表中查找用户的信息。(不可否认:在内存列表中查找信息远比在数据库中用sql查找信息)如果找到就把信息通过xml->ajax返回给客户端。
当客户到查看信息页面中查看掉信息后,就删除临时表中的记录,一分钟后的同步动作应该自动将内存中的信息干掉了。


页面定时向服务器发送请求看有无新消息,有的话就采用图片替换的方法(类似CSDN)
并接收消息~


服务器端设计一个缓存,这样就不用去读数据库,性能得以保证


关注ing


我想还是要用到数据库的


关注


结贴


↑返回目录
前一篇: 如何规划学习java发展之路(学习过程)?困惑中.....
后一篇: JAVA语言中编译执行和解释执行的区别