HTML5 中的服务器推送事件是如何工作的?


服务器推送事件对我们从服务器流传输数据到客户端的方式进行了标准化。要在 Web 应用程序中使用服务器推送事件,您需要将 <<eventsource> 元素添加到文档中。

<eventsource> 元素的 src 属性应指向一个URL,该 URL 应提供一个持久性 HTTP 连接,该连接会发送包含事件的数据流。

该 URL 将指向 PHP、PERL 或任何 Python 脚本,该脚本将负责持续发送事件数据。以下是一个简单的 Web 应用程序示例,该应用程序将获取服务器时间。

您可以尝试运行以下代码来学习如何在 HTML5 中使用服务器推送事件

示例

实时演示

<!DOCTYPE HTML>
<html>
   <head>
      <script type="text/javascript">
         document.getElementsByTagName("eventsource")[0].addEventListener("server-time", eventHandler, false);
         function eventHandler(event){
            // Alert time sent by the server
            document.querySelector('#ticker').innerHTML = event.data;
         }
      </script>
   </head>
   <body>
      <div id="sse">
         <eventsource src="/cgi-bin/ticker.cgi" />
      </div>
      <div id="ticker" name="ticker">
         [TIME]
      </div>
   </body>
</html>

最后,以下是用 perl 编写的 ticker.cgi −

#!/usr/bin/perl
print "Content-Type: text/event-stream

"; while(true){    print "Event: server-time
";    $time = localtime();    print "Data: $time
";    sleep(5); }

更新于:2020 年 2 月 25 日

375 次浏览

开启您的 职业生涯

通过完成课程来获得认证

开始
广告