当前位置: 首页 > news >正文

开发网站要注意什么问题网站建设项目需求分析流程

开发网站要注意什么问题,网站建设项目需求分析流程,网页设计软件下载网站,网站建设在哪里推广一.什么是SSE SSE协议是一种基于http协议的单向通信协议#xff0c;服务端可以向客户端发送数据#xff0c;但是客户端不能向服务器发送数据。客户端通过创建一个到服务器的单向连接来监听事件。可以将一次性返回数据包改为流式返回数据。SSE协议支持断线重连#xff0c;也支…一.什么是SSE SSE协议是一种基于http协议的单向通信协议服务端可以向客户端发送数据但是客户端不能向服务器发送数据。客户端通过创建一个到服务器的单向连接来监听事件。可以将一次性返回数据包改为流式返回数据。SSE协议支持断线重连也支持自定义响应事件。比如ChatGpt使用的通信方式就是SSE协议相比于websocket通信这是一个更为轻量级的通信方式使用方法简单。但是在浏览器原生的EventSource不支持设置请求头需要借助第三方包去实现同时也需要后端设置接口的响应头Content-Type:text/event-stream 二.SSE和WebSocket的区别 WebSocket  API WebSocket是基于TCP协议的一种用于应用层的网络协议它实现了浏览器与服务器之间的全双工通信它允许服务器主动发信息给客户端。所以浏览器和服务器只需要完成一次握手就可以建立持久性的连接并且能够实现双向数据传输。 特点 1.传输的数据格式可以是文本也可以是二进制形式 2.不受同源策略的限制可以与任意服务端进行通信 3.兼容HTTP协议默认端口同样是80ws和443ws 4.客户端和服务端通信时开销较少与HTTP协议不同不需要每次都携带完整的头部信息 5.若在通信过程中连接中断需要自己实现断线重连 区别 1.sse协议仅支持服务端向客户端发送数据而websocket支持双向通信服务端和客户端之间可以互相通信 2.sse是一种轻量级的通信协议而websocket整体的一些方法事件较为复杂 3.sse支持断线重连机制而websocket需要自己实现断线重连 4.sse是基于HTTP协议的通信协议而websocket是基于TCP协议的网络层通信协议 三.前端使用SSE h1fetchSSE Demo/h1button onclickconnectFetch()建立 fetchSSE 连接/buttonbutton onclickcloseSSE()断开 fetchSSE 连接/buttonbr /br /div idmessage/divscriptconst messageElement document.getElementById(message)let controller null// 建立 FETCH-SSE 连接const connectFetch () {controller new AbortController()fetchEventSource(http://127.0.0.1:3001/fetch-sse, {method: POST,body: JSON.stringify({content: xxx}),signal: controller.signal,onopen: () {messageElement.innerHTML FETCH 连接成功br /},onclose: () {messageElement.innerHTML FETCH 连接关闭br /},onmessage: (event) {const data JSON.parse(event)messageElement.innerHTML ${data.id} --- ${data.time} --- body参数${JSON.stringify(data.body)} br /},onerror: (e) {console.log(e)}})}// 断开 FETCH-SSE 连接const closeSSE () {if (controller) {controller.abort()controller undefinedmessageElement.innerHTML FETCH 连接关闭br /}}const fetchEventSource (url, options) {fetch(url, options).then(response {if (response.status 200) {options.onopen options.onopen()return response.body}}).then(rb {const reader rb.getReader()const push () {// done 为数据流是否接收完成boolean// value 为返回数据Uint8Arrayreturn reader.read().then(({ done, value }) {if (done) {options.onclose options.onclose()return}options.onmessage options.onmessage(new TextDecoder().decode(value))// 持续读取流信息return push()})}// 开始读取流信息return push()}).catch((e) {options.error options.error(e)})}
http://www.dnsts.com.cn/news/164779.html

相关文章:

  • 竹子建站教程现在主流的网站开发语言
  • 毕业设计网站开发任务安排.net企业门户网站开发
  • 均安建网站seo成功案例分析
  • 做网站推广 需要ftp个人证书查询网全国联网
  • 网站开发需要哪些技术河南seo和网络推广
  • php建站大同网站建设企业
  • 门户网站做免费发布信息平台有哪些
  • 网站建设氺金手指排名11wordpress文章分类权限
  • 域名指向另一个网站html网页制作实训报告
  • 烟台北京网站建设WordPress图片分类代码
  • 南宁企业网站设计包装设计说明模板
  • 大连网站建设方案案例全网络品牌推广
  • 非你莫属做网站的卖网币起家的中小型企业网站建设与管理考试
  • 云南旅游网站开发公司莱芜雪野湖好玩吗
  • 香河家具城网站建设目标永安网站建设公司
  • 石门网站建设网店运营的基本流程
  • 单位网站建设汇报建一个大型网站需要多少钱
  • 手机有软件做ppt下载网站有哪些内容做论坛网站需要多少钱
  • 网站建设板块如何分类网站优化站外链接怎么做
  • 长沙做网站企业wordpress控制
  • 网站建设岗位要求电信网站服务器
  • 工作室图片 实拍网站优化是怎么做的
  • 闵行网站建设公司纸上海建设安全协会官网
  • 无锡网站建设公司广东建设厅证件查询网站
  • 商务网站创建wordpress后台安装
  • 福州建设工程协会网站查询免费seo网站诊断免费
  • 如何用wordpress建站网站备案专员
  • wordpress模板代码wordpress插件dx seo下载
  • 招聘网站开发计划做问卷的网站哪个好
  • 做的网站浏览的越多越挣钱编辑目录中的字体wordpress