http://192.168.104.43/lock/cloudplatform.git

http://192.168.104.43/lock/cloudlockbussiness.git

http://192.168.104.43/lightBox/sitelock.git

http://192.168.104.43/card/cardserver.git

http://192.168.104.43/apartment/apartmentroot.git



HTML5 服务器发送事件(server-sent event)允许网页获得来自服务器的更新。


Server-Sent 事件 - 单向消息传递

Server-Sent 事件指的是网页自动获取来自服务器的更新。


以前也可能做到这一点,前提是网页不得不询问是否有可用的更新。通过服务器发送事件,更新能够自动到达。


例子:Facebook/Twitter 更新、估价更新、新的博文、赛事结果等。


浏览器支持

所有主流浏览器均支持服务器发送事件,除了 Internet Explorer。


var source = new EventSource('sse/get_data');

source.onmessage = function (event) {

  console.info(event.data);

  document.getElementById('result').innerText = event.data

};


EventSource 对象

在上面的例子中,我们使用 onmessage 事件来获取消息。不过还可以使用其他事件:

事件描述
onopen当通往服务器的连接被打开
onmessage当接收到消息
onerror当错误发生


检测 Server-Sent 事件支持


if(typeof(EventSource)!=="undefined")



SpringBoot2.x服务端主动推送SSE

@RequestMapping(value = "/get_data", produces = "text/event-stream;charset=UTF-8")

    public String getData() {

          try {

              Thread.sleep(1000); 

              //第三方数据源调用

          } catch (InterruptedException e) {

              e.printStackTrace();

          }

          return "最新数据:" + Math.random();

    }


需要把response的类型 改为 text/event-stream,才是sse的类型


运行结果如下: