zoukankan      html  css  js  c++  java
  • Java Spring使用EventSource进行服务端推送

    Java代码:

            @ResponseBody
            @RequestMapping(value = "/getDate", produces="text/event-stream;charset=UTF-8")
            public void getDate(HttpServletResponse response) throws Exception {
                log.info("getDate event start");
                response.setContentType("text/event-stream");
                response.setCharacterEncoding("UTF-8");
                response.setStatus(200);
                while(!response.getWriter().checkError()){
                    response.getWriter().write("data:"+new Date()+" ");
                    response.getWriter().flush();
                    Thread.sleep(1000);
                }
                response.getWriter().close();
                log.info("getDate event end");
            }

    前端代码(jsp):

        <%@ page language="java" contentType="text/html;charset=utf-8" pageEncoding="utf-8" %>
         
        <!DOCTYPE html>
        <html>
        <head>
            <title>日期</title>
        </head>
        <body>
        <div id='date'>
        </div>
        <script>
                if (typeof(EventSource) !== "undefined") {
                    var eventSource = new EventSource("/Output/getDate");
                    
                    eventSource.onmessage = function (event) {
                        document.getElementById("date").innerHTML = event.data;
                             
                    }            
                    eventSource.addEventListener('error', function (event) {
                        console.log("错误:" + event);
                    });
                    eventSource.addEventListener('open', function (event) {
                        console.log("建立连接:" + event);
                    });
                }
                else {
                    document.getElementById("date").innerHTML = "抱歉,您的浏览器不支持 server-sent 事件 ...";
                }   
            
        </script>
         
        </body>
        </html>



  • 相关阅读:
    Python之坐标轴刻度细化、坐标轴设置、标题图例添加
    探索性数据分析
    http://blog.csdn.net/milton2017/article/details/54406482
    libsvm学习日记--1
    推荐系统评测指标—准确率(Precision)、召回率(Recall)、F值(F-Measure)
    python中if __name__ == '__main__': 的解析
    Python类
    TweenMax学习一
    vuejsLearn---通过手脚架快速搭建一个vuejs项目
    vuejsLearn--- -- 怎么查看、修改、追加数据---->data对象
  • 原文地址:https://www.cnblogs.com/tiancai/p/14791137.html
Copyright © 2011-2022 走看看