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

有人用java实现过server push吗??
大家好!我在做一个server   push的程序遇到了很奇怪的问题

程序框架大致如下,在doPost()中:

ServletOutputStream   out   =   response.getOutputStream();
MultipartResponse   multi   =   new   MultipartResponse(response);
multi.startResponse( "text/html ");
out.println( "输出的内容 ");  //这里输出的内容是网页的文件头
multi.endResponse();
while(true){
    //一些判断条件
      multi.startResponse( "text/html ");
      out.println( "程序读xml文件后,输出的文件内容 ");
      multi.endResponse();
}

我的问题是,即使是第一个输出out.println( "输出的内容 ")在浏览器中起码也要半分钟才显示。而我可以确定,该行代码很快就被执行了。
为什么会这样?跟server   push有关吗?

------解决方案--------------------
在out.println( "输出的内容 ")后面加一个out.flush()就可以了,因为存在服务器端的缓冲区,所以要强制输出
------解决方案--------------------
谁做过像QQ新闻对话框自动弹出的程序吗?应该就是用的是Server push技术,服务端监听到客户端用户已经登陆,就强行发送一个消息给它。这样的技术用java怎么实现?哪位大虾能够给个例子?