服务器端使用DeferredResult异步推送技术


  注意1:

  org.springframework.web.context.request.async.DeferredResult;

  是Spring4.0以后的版本才有的,注意Spring版本,然后添加Spring Springmvc的依赖

 4.1.1.RELEASE

注意2:当出现如下异常时:

  Async support must be enabled on a servlet and for all filters involved in async request processing.

  This is done in Java code using the Servlet API or by adding "true"

  to servlet and filter declarations in web.xml.

  处理方式:

  
    appServlet
    org.springframework.web.servlet.DispatcherServlet
    
      contextConfigLocation
      /WEB-INF/spring/appServlet/servlet-context.xml
    

    1
    true //添加这一句
  



服务端接口: 

 @RequestMapping("/defer") @ResponseBody public DeferredResult deferred(){ //其他用户通过客户端访问/feder来获取数据 SimpleDateFormat sd = new SimpleDateFormat("YYYY年-MM月-DD日 hh时: mm分 : ss秒"); String date = sd.format(new Date()); System.out.println(date); DeferredResult d = new DeferredResult(); d.setResult("***"+msgs); return d; }
String msgs; @RequestMapping(
"/getmsg") public void getmsg(String msg){ //一个用户何以使用/getmsg?msg=xxxxx,修改msgs的信息 System.out.println("msg is "+msg); msgs = msg; }
"msgFrompPush">

msg: