Uniapp 开发App 如何使用SSE,实现AI聊天打字机的效果

SSE(Server-Sent Events),是一种类似http的协议,实现单向多条消息分段发送的效果,服务器处理完一部分数据会先返回一段数据,等到全部内容发送完成后才会断开连接,我们也可以直接使用http去访问他,但是要等到请求完毕的时候才能一次性收到全部的内容。
打开 chatgpt.com 的控制台可以很清楚地在网络中看到EventStream加载的过程。

image.png

在h5中,可以使用 JS的 EventSource接口,但是App中,Uniapp 没有Windows对象,也没有提供SEE的接口,但可以使用RanderJsRanderJs是一个运行在视图层的js,可以使用完整的JS生态。

SSE标椎是使用GET请求,然而市场上大家基本都使用POST来把参数放到请求体中,所以我使用了github上的一个支持POST的工具fetch-event-source

下面介绍RanderJs怎么使用

使用RanderJs 代码分为3块

前面是标椎的nvue代码

后面的renderjs可以写原生的vue代码。

显示验证码
没有账号?注册  忘记密码?