赞
踩
当时为了实现像chart GPT一样文字流式输出的效果而使用的这种通信方式,这种通信方式不同于axios或是fetch,它支持在通信过程中对获取的数据进行处理。
SSE,全称Server-Sent Events,当服务器向浏览器发送的不是一次性的数据包,而是一个数据流且会连续不断地发送过来,可以使用SSE通信。
它基于 HTTP 协议,提供服务器向浏览器单向通信通道,默认支持断线重连,一般只用来传送文本。
let source = new EventSource(url);
source.onopen = function (event) {
// ...
};
source.onmessage = function (event) {
var data = event.data;
// handle message
};
source.onerror = function (event) {
// handle error event
};
source.close();
以上就是针对前端部分使用SSE通信的步骤和使用频率比较高的API,如何想要系统的学习SSE,推荐看一下阮一峰老师写的这篇文章:Server-Sent Events 教程,这篇文章从前端、服务器端比较系统的介绍了SSE的基本用法。
其实,还有一个比SSE更强大更灵活的通信方式,名为WebSocket,它是一种网络通信协议,很多高级功能都需要它。
WebSocket与SSE 作用相似,都是建立浏览器与服务器之间的通信渠道,然后服务器向浏览器推送信息。不同的是WebSocket是全双工通道,可以双向通信;SSE 是单向通道,只能服务器向浏览器发送,因为流信息本质上就是下载。如果浏览器向服务器发送信息,就变成了另一次 HTTP 请求。
它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送技术的一种。
其基本用法与SSE类似,因此这里就不再赘述,感兴趣的小伙伴可以查看WebSocket 教程,也是阮一峰老师写的哦~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。