服务器是怎么向客户端推数据的,客户端又是怎么不断接受的???
网上也看了很多,但还是有几点不太明白
1.服务器端应该怎么写比较好呢?要实现自己的ServerSocket监听每一个Socket吗?但这样性能......
2.客户端的ajax还需要不断向服务器请求吗?既然是"推"的话,就不用"拉"了吗?
不明白啊,希望得到详细的解答最好附上代码,谢谢了,急用...

解决方案 »

  1.   

    浏览器和服务器能简历socket连接吗?
    看看有关comet的技术
    dwr也有了相应实现
    http://directwebremoting.org/dwr/documentation
      

  2.   

    HTTP 是无状态的协议,服务器不可能做到真正的“推”数据,只是通过客户端不断地向服务器发请求来查看服务器上是否有新数据来模拟“推”,选择一个合适的轮训时间才是关键。再有客户端浏览器如果不使用 Applet 是没办法用 Socket 与服务器通讯的。
      

  3.   


    所谓的comet技术,
    有一个开源框架可以使用 ,Pushlets
    网址:http://www.pushlets.com/
      

  4.   

    那push技术应该怎么实现  才能做到 性能相对较好 响应速度较快
    不用框架  要最原始的是不是要单独写个HTTP的服务 来专门处理异步请求,而不是用web服务器?
      

  5.   

    在你的servlet里写个死循环while(true),在这个里面写程序,sleep多长时间输出一次,然后flush。
      

  6.   


    用netstat本机网络连接就可以发现,凡是有推功能(push)的软件,MSN、QQ等,都要使用独立的客户端与服务器建立SOCKET连接。标准的浏览器不包括非HTTP的socket连接,而HTTP在不支持服务器向浏览器推送在IE里,或许可以用ActiveX插件,但这样做有恶意软件的嫌疑,可能被一些工具封堵。