• 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>



  • 相关阅读:
    Beta冲刺(4/4)
    2019 SDN上机第7次作业
    Beta冲刺(3/4)
    Beta冲刺(2/4)
    机器学习第二次作业
    机器学习第一次作业
    软工实践个人总结
    第04组 Beta版本演示
    第04组 Beta冲刺(5/5)
    第04组 Beta冲刺(4/5)
  • 原文地址:https://www.cnblogs.com/tiancai/p/14791137.html
Copyright © 2020-2023  润新知