为什么在AI对话中选择用sse而不是web socket?

先简单介绍一下sse: 一种由服务端到客户端的单向通信协议。
再介绍一下web socket: 一种全双工通信协议(通俗来说就是服务端和客户端互传)

看完了介绍,肯定会觉得AI对话这种类似于实时聊天的场景,肯定是要选择web socket来做这个功能,不论是它的双向通信、低延迟还是流传输,怎么看都是很合适的,那为什么还要去用sse来做这个事情呢。首先我们的对话,是问答的形式,但是不同于聊天,它是一种截断式的询问,比如我们提问一个问题,ai会立马针对这个问题来进行回答,当我们想要问另外一个问题,它必须立马回到现在的这个问题上,终止之前的回答,再一个对话并非是很频繁的,基本就是一个等待问完,一个等待回答完,所以对于web socket那种实时双向通信不是必须。然后就是低延迟,其实也是对于AI对话功能不是很必须的,因为很多时候,为了体现回答的流畅,我们会做成打字输入的效果,实际可能内容早就生成完毕了,但是页面还在一个字一个字的输出中。再就是流传输,AI聊天场景其实就是文本的形式,生成的图片也不会以数据流的形式传给客户端展示,一般直接就丢个链接过来展示就完事了。

说完了AI聊天不必要使用web socket,再说一下为什么要用SSE,一是实现简单,传输的数据直接就是文本,二是资源消耗比web socket小,毕竟单向通信,光服务器来推送数据就可以了。虽然sse存在局限性,但是完全符合AI对话的需求,所以没必要使用web socket

相关推荐
hedley(●'◡'●)6 分钟前
基于cesium和vue的大疆司空模仿程序
前端·javascript·vue.js·python·typescript·无人机
qq5_8115175157 分钟前
web城乡居民基本医疗信息管理系统信息管理系统源码-SpringBoot后端+Vue前端+MySQL【可直接运行】
前端·vue.js·spring boot
百思可瑞教育8 分钟前
构建自己的Vue UI组件库:从设计到发布
前端·javascript·vue.js·ui·百思可瑞教育·北京百思教育
百锦再8 分钟前
Vue高阶知识:利用 defineModel 特性开发搜索组件组合
前端·vue.js·学习·flutter·typescript·前端框架
CappuccinoRose34 分钟前
JavaScript 学习文档(二)
前端·javascript·学习·数据类型·运算符·箭头函数·变量声明
这儿有一堆花40 分钟前
Vue 是什么:一套为「真实业务」而生的前端框架
前端·vue.js·前端框架
全栈前端老曹1 小时前
【MongoDB】深入研究副本集与高可用性——Replica Set 架构、故障转移、读写分离
前端·javascript·数据库·mongodb·架构·nosql·副本集
NCDS程序员1 小时前
v-model: /v-model/ :(v-bind)三者核心区别
前端·javascript·vue.js
夏幻灵2 小时前
CSS三大特性:层叠、继承与优先级解析
前端·css
小杨同学呀呀呀呀2 小时前
Ant Design Vue <a-timeline>时间轴组件失效解决方案
前端·javascript·vue.js·typescript·anti-design-vue