想做一个web聊天室服务器,客户端只用浏览器即可(类似qq,msn的网页聊天),查了一下资料,好像主要用的是推技术,请问就推技术而言有哪些好的方案,各种效率如何?

解决方案 »

  1.   

    我之前稍微做了一下,我的思路是在一个Servlet或JSP 中循环,在response里输出后flush()出来,也就是一个一直处于loading状态的servlet.
      

  2.   

    使用servlet会不会有刷新整个页面的问题?
      

  3.   

    我看了一个使用servlet的例子,里面用到了while(true){}和response后的flush(),如果是这样的话,那不跟使用socket一样了吗?
      

  4.   

    一直loading不会脚本超时吗?
    看到有用ajax实现的无刷新聊天室。其实就是不断刷新,只是没有刷新的滴滴声和只是刷新局部而已。
      

  5.   

    while(true){}和response后的flush()我公司的聊天室,也是这样做的.
      

  6.   

    有兴趣的话可以去看看JChatbox的代码.
      

  7.   

    印象里,好像 Netscape 支持了 multipart 方式的 push 技术,IE 并没有支持 push。建议一:利用 AJAX 之类的技术,在页面里做局部刷新,能实现“准实时同步”,但是服务器的负载开销会增加,刷新周期不太好确定。建议二:利用 Applet 跟服务器建立 Socket 连接,能实现“实时同步”,缺点嘛,可能服务器上端口占用会多一些。
      

  8.   

    如果实时性能要求不是很高,访问量级不是很大的话可以考虑ajax
    如果实时性要求的比较高的话可以考虑socket。 但是当访问量级超过一定级别的时候。
    就需要nio 来实现了。
      

  9.   

    chnic(挠痒痒) ( ) 信誉:100    Blog   加为好友  2007-4-17 12:03:16  得分: 0  
     
     
       
    如果实时性能要求不是很高,访问量级不是很大的话可以考虑ajax
    如果实时性要求的比较高的话可以考虑socket。 但是当访问量级超过一定级别的时候。
    就需要nio 来实现了。
    --------------------------
    同意
      

  10.   

    > 如果实时性要求的比较高的话可以考虑socket。 
    > 但是当访问量级超过一定级别的时候。就需要nio 来实现了。请问这里 nio 是用来解决什么问题的?