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: message1\n id: 1\n retry: 10000\n\n data: message2\n\n
其中,data 表示消息的主体内容,可以是任意文本,id 表示消息的 ID,用于解决浏览器中消息的乱序问题,retry 表示如果连接断开后多少毫秒后重新连接。
SSE 的 JavaScript 使用
在前端中,可以使用 JavaScript 来使用 SSE。以下是一个示例代码:
-- -------------------- ---- ------- -- ---- --- -- ----- ----------- - --- -------------------- -- ------ --------------------- - ----- -- - ----- ------- - ----------- --------------------- -- -- ------ ------------------- - ----- -- - --------------------- --
在该示例代码中,通过new EventSource(url)
创建一个 SSE 实例,可以指定 SSE 服务的地址。通过onmessage
和onerror
来监听消息和错误事件,当有新的消息时,onmessage
函数会被调用,接收到的消息可以通过event.data
获取。当发生错误时,onerror
函数会被调用,可以通过event
获取错误信息。
总结
Server-sent events 是一种方便的服务器推送技术,常用于实现一些实时通信的功能。在使用 SSE 时,需要注意消息的 MIME 类型和格式。在 JavaScript 中,可以使用EventSource
来创建 SSE 实例,并监听消息和错误事件。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64a24e9448841e9894ea5c4e