转发:https://www.iteye.com/blog/wiselyman-2214626
package com.wisely.web;
import java.util.Random;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class SSEController {
    //注意produces="text/event-stream"
    @RequestMapping(value="/push",produces="text/event-stream")
    public @ResponseBody String push(){
         Random r = new Random();
         try {
                 Thread.sleep(5000);
         } catch (InterruptedException e) {
                 e.printStackTrace();
         }
         return "data:Testing 1,2,3" + r.nextInt() +"\n\n";
    }
}
<div id="msg_from_server"></div>
<script type="text/javascript" src="<c:url value="/js/jquery.js" />"></script>
<script type="text/javascript">
if (!!window.EventSource) {
       var source = new EventSource(‘push‘); //为http://localhost:8080/testSpringMVC/push
       s=‘‘;
       source.addEventListener(‘message‘, function(e) {
           s+=e.data+"<br/>"
           $("#msg_from_server").html(s);
       });
       source.addEventListener(‘open‘, function(e) {
            console.log("连接打开.");
       }, false);
       source.addEventListener(‘error‘, function(e) {
            if (e.readyState == EventSource.CLOSED) {
               console.log("连接关闭");
            } else {
                console.log(e.readyState);    
            }
       }, false);
    } else {
            console.log("没有sse");
    }
</script>
原文:https://www.cnblogs.com/Jeely/p/11950263.html