服务端主动推送SSE (Sever-Send-Events)

适合开发个人网页公司主页博客网站开发网站建设

转载:http://www.5180it.com/bbs/admin/1/534.html

 

 

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的类型

 

运行结果如下:

 

 

 

适合开发个人网页公司主页博客网站开发网站建设

转载:http://www.5180it.com/bbs/admin/1/534.html

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>