21xrx.com
2024-12-19 12:12:46 Thursday
登录
  

HTML5 server-sent事件

服务器发送消息事件(Server-Sent Events)允许网页收到服务器的更新信息.

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

server-sent事件就是网页自动从服务器获取更新.

例子:Facebook/Twitter消息更新,股票价格更新,新闻反馈,体育分数等等.

接收服务端发送的事件通知

EventSource对象用来接收服务器端发送的事件通知:

例子

例子解释:

  • 创建一个新的EventSource对象,并且指定URL(在这个例子里是"demo_sse.php").
  • 每次收到了更新会触发onmessage事件.
  • 当onmessage事件触发了,把收到了的数据显示在id="result"元素里.

检测是否支持Server-Sent事件

在上面的例子里加一些代码来检测是否支持server-sent事件:

服务器端代码例子

为了让上面的代码正常工作,你需要服务器来发送更新数据(例如:PHP,ASP).

服务器端的事件流语法很简单.

设置"Content-Type"头为"text/event-stream".

现在你就可以开始发送事件流了.

PHP代码(demo_sse.php):

ASP代码(VB)(demo_sse.asp):

代码解释:

  • 设置"Content-Type"头为"text/event-stream"
  • 指定页面不应该缓存
  • 服务器把数据发送出来(数据开头通常用"data:"这种格式)
  • 刷新输出数据到网页

EventSource对象

在上面的例子里,我们用onmessage事件去得到信息.但是其它事件也可用:

事件描述
onopen当连接到服务器时触发
onmessage当收到消息时触发
onerror当发生错误时触发
  
  

评论区

{{item['qq_nickname']}}
()
回复
回复
21技术    www.21xrx.com 备案号:蜀ICP备17043188号-2