Server-sent Events 基础知识

阅读时长 2 分钟读完

Server-sent events(SSE)是一种服务器推送技术,可以用于实现实时通信等功能。在前端开发中,使用 SSE 可以方便地实现部分页面的实时更新,如聊天室、股票行情等。

常见的 MIME 类型

在使用 SSE 时,需要注意消息的 MIME 类型。以下是常见的 MIME 类型:

  • text/event-stream:用于传输 SSE 消息。

  • text/plain:用于传输纯文本。

  • text/html:用于传输 HTML 文本。

  • application/json:用于传输 JSON 格式数据。

  • image/jpeg:用于传输图片等二进制数据。

SSE 消息格式

SSE 传输的消息是一个包含一个或多个字段的普通文本,以“data:”开头,以“\n\n”(两个换行符)结尾,多个字段之间用“\n”分隔,如下所示:

其中,data 表示消息的主体内容,可以是任意文本,id 表示消息的 ID,用于解决浏览器中消息的乱序问题,retry 表示如果连接断开后多少毫秒后重新连接。

SSE 的 JavaScript 使用

在前端中,可以使用 JavaScript 来使用 SSE。以下是一个示例代码:

-- -------------------- ---- -------
-- ---- --- --
----- ----------- - --- --------------------

-- ------
--------------------- - ----- -- -
  ----- ------- - -----------
  ---------------------
--

-- ------
------------------- - ----- -- -
  ---------------------
--

在该示例代码中,通过new EventSource(url)创建一个 SSE 实例,可以指定 SSE 服务的地址。通过onmessageonerror来监听消息和错误事件,当有新的消息时,onmessage函数会被调用,接收到的消息可以通过event.data获取。当发生错误时,onerror函数会被调用,可以通过event获取错误信息。

总结

Server-sent events 是一种方便的服务器推送技术,常用于实现一些实时通信的功能。在使用 SSE 时,需要注意消息的 MIME 类型和格式。在 JavaScript 中,可以使用EventSource来创建 SSE 实例,并监听消息和错误事件。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64a24e9448841e9894ea5c4e

纠错
反馈