📜  什么是 HTML5 中的服务器发送事件?

📅  最后修改于: 2022-05-13 01:56:45.782000             🧑  作者: Mango

什么是 HTML5 中的服务器发送事件?

服务器发送事件 (SSE) 是用于自动更新网站或网页的事件。网页由服务器更新,无需用户的任何批准。任何网站的更新都来自 HTTP 连接。这种由服务器更新网页到客户端的通信方式称为单向消息传递或单向消息传递。服务器发送事件是 Web API 的一部分。

在本文中,我们将了解服务器发送事件、它们如何工作以及使用 HTML5 的示例。

检查浏览器对 SSE 的支持:在实施 SSE 之前,检查浏览器的支持是必要的。要检查支持,我们将使用 if 和 else 语句并使用 EventSource 对象运行以下代码。 EventSource对象用于接收来自服务器的事件或通知。下面是对象的语法。

句法:

if(typeof(EventSource) !== "undefined") {
    var source = new EventSource("gfg-file.php");
    source.onmessage = function(event) {
        document.getElementById("yourResult")
            .innerHTML += event.data + "
"; } }

现在,我们已经了解了 EventSource 对象,是时候检查浏览器对 SSE 的支持了。使用 javascript 的   



HTML


  

    

GFG getting Server-Sent Events

    
          


现在,一旦if语句运行,如果浏览器运行 EventSource 对象,用户将看到下面的输出,如果不是,那么它将显示语句的 else 部分。

输出:

从服务器发送自动事件:现在,为了从服务器发送通知或事件,需要一个能够向客户端发送事件的服务器。对于演示,我们将为此目的创建一个 ASP 文件。下面是示例的 ASP 文件:

// gfg_demo.asp

// code starts from here
<%
Response.ContentType = "text/event-stream"
Response.Expires = -1
Response.Write("data: Current Server time: " & now())
Response.Flush()
%>

在上面的 ASP 代码中,根据 SSE 标准,ContentType 响应设置为“text/event-stream”,并且数据的输出将始终以数据开始发送。响应的 Flush() 方法将数据事件发送到用户网页。

例子:

HTML



  

    

GFG getting Server-Sent Events

    
          

输出