使用 HTML5 SSE 向客户端推送消息

什么是 HTML5 SSE?

HTML5 SSE(Server-Sent Events)是一种从服务器向客户端推送事件的技术,允许客户端实时接收服务器端的数据。与传统的轮询和长轮询技术相比,HTML5 SSE 更加高效和可靠,因为它使用了一种基于 HTTP 的持久连接,不需要不断地建立和断开连接。

如何使用 HTML5 SSE?

使用 HTML5 SSE 需要在客户端和服务器端分别进行设置。客户端需要创建一个 EventSource 对象,服务器端需要发送事件流。

客户端

客户端可以通过以下代码创建一个 EventSource 对象:

其中,'server-sent-events.php' 是服务器端发送事件流的地址。

接下来,可以通过添加事件监听器来处理服务器端发送的消息。例如:

其中,'message' 是事件的名称,event.data 是服务器端发送的数据。

服务器端

服务器端需要发送事件流,可以通过以下代码实现:

其中,'Content-Type' 和 'Cache-Control' 是必须的,'data' 是数据的前缀,'\n\n' 是必须的换行符。

可以通过循环发送事件流来实现持续的数据推送:

其中,'ob_flush()' 和 'flush()' 是必须的,它们会立即发送缓冲区的数据,确保数据的实时性。

示例代码

以下是一个完整的示例代码:

客户端

服务器端

总结

HTML5 SSE 是一种非常有用的技术,可以实现实时数据推送,提高用户体验。它比传统的轮询和长轮询技术更加高效和可靠,因为它使用了一种基于 HTTP 的持久连接。使用 HTML5 SSE 需要在客户端和服务器端分别进行设置,客户端需要创建 EventSource 对象,服务器端需要发送事件流。示例代码可以帮助读者更好地理解和使用 HTML5 SSE。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/653cc5687d4982a6eb6c5bfa


纠错
反馈