目前,以 B/S 架构的产品越来越多, 这就衍生出一个通知消息的技术问题,比如:在线聊天、邮件通知等等,
    观察论坛许久,众多程序员采用 AJAX 无刷新技术定时访问数据库,刷新数据,达到消息功能,访问量少可以
    突出此优势,但如果海量访问,试问数据库能否承受?
    以经典的例子说明----《在线考试系统》,功能描述:    学生登录完毕进入指定UI等待开考---》考官查看考生是否全部登陆完毕(初步定为将学生登录状态记录数据库,
    每秒刷新数据。)确定无误---》单击开考按钮(学生端从登陆完毕后一直刷新页面)---》学生接到正确参数,
    跳转考试页面。考试完毕---》单击提交试卷按钮 ----》 驱动考官页面弹出提示(考官端页面不停刷新中)    暂不考虑业务是否完善,就题论题,从开考到结束,参与考试系统对象都在不停的刷新数据库!

    不知道大家有什么好的解决方案,讨论下!

解决方案 »

  1.   

    考虑sametime
    一些门户系统中多用sametime来做在线感知
      

  2.   

    JAVA(后台)+Flex(前台桥梁)
    要点:socket,Tcp/Ip
    消息互动 通过flex操作js 改变html状态。通过JS操作Flex发送信息   这里flex只是js与JAVA服务端的桥梁
      

  3.   

    sametime 要使用到 LOTUS,假设服务器超出预算。Flex的底层就是JSP,如果开发阶段转换页面技术,成本预算高。
      

  4.   

    关注,总觉得ajax不间断刷新数据库会损耗效率的,期待有好的方法!
      

  5.   

    第一感觉是ajax不停得去server取状态-这样可能有效率问题
    不过可以考虑comet技术
    这里有篇帖子可以参考下:
    Comet:基于 HTTP 长连接的“服务器推”技术
    http://www.ibm.com/developerworks/cn/web/wa-lo-comet/
      

  6.   

    略看了 COMET下 PUSHLET 开源框架的代码,虽然能暂时解决 IM 功能,由 SERVER端向 CLINT 端发送请求信息,
    利用相当于CGI 形式内嵌 HTML 代码达到改变 CLINT 页面内容,但也只能使用于小型系统,超过100 个线程访问
    则严重损耗服务器,只能考虑改善硬件,负载均衡或者集群服务器提升性能。望大家继续探讨!!!