Java:
- package com.example.huamao.controller;
-
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestMethod;
- import org.springframework.web.bind.annotation.ResponseBody;
-
- import java.util.Random;
-
- /** SSE 服务器发送事件
- */
- @Controller
- public class SSEController {
- @RequestMapping(value="/push",produces="text/event-stream;charset=utf-8")
- @ResponseBody
- public 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";
- }
- @RequestMapping(value = "/sseTest", method = RequestMethod.GET)
- public String getSSEView () {
- return "sseTest";
- }
- }
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
jsp
-
- <%@ page contentType="text/html;charset=UTF-8" language="java" %>
- <html>
- <head>
- <title>sse 测试</title>
- </head>
- <body>
-
-
- <div id="msg_from_server"></div>
- <script type="text/javascript" src="/js/jquery-3.2.1.min.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>
-
-
- </body>
- </html>