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

公司创建网站销售外链怎么打开

公司创建网站销售,外链怎么打开,免费源码资源源码站入口,公司网站续费一年多少钱一.什么是SSE SSE协议是一种基于http协议的单向通信协议,服务端可以向客户端发送数据,但是客户端不能向服务器发送数据。客户端通过创建一个到服务器的单向连接来监听事件。可以将一次性返回数据包改为流式返回数据。SSE协议支持断线重连,也支…

一.什么是SSE

        SSE协议是一种基于http协议的单向通信协议,服务端可以向客户端发送数据,但是客户端不能向服务器发送数据。客户端通过创建一个到服务器的单向连接来监听事件。可以将一次性返回数据包改为流式返回数据。SSE协议支持断线重连,也支持自定义响应事件。比如ChatGpt使用的通信方式就是SSE协议,相比于websocket通信这是一个更为轻量级的通信方式,使用方法简单。但是在浏览器原生的EventSource不支持设置请求头,需要借助第三方包去实现,同时也需要后端设置接口的响应头Content-Type:text/event-stream

二.SSE和WebSocket的区别

        WebSocket  API

           WebSocket是基于TCP协议的一种用于应用层的网络协议,它实现了浏览器与服务器之间的全双工通信,它允许服务器主动发信息给客户端。所以,浏览器和服务器只需要完成一次握手就可以建立持久性的连接,并且能够实现双向数据传输。

        特点:

          1.传输的数据格式可以是文本也可以是二进制形式

          2.不受同源策略的限制,可以与任意服务端进行通信

          3.兼容HTTP协议,默认端口同样是80(ws)和443(ws)

          4.客户端和服务端通信时开销较少,与HTTP协议不同,不需要每次都携带完整的头部信息

          5.若在通信过程中连接中断,需要自己实现断线重连

        区别:

          1.sse协议仅支持服务端向客户端发送数据,而websocket支持双向通信,服务端和客户端之间可以互相通信

          2.sse是一种轻量级的通信协议,而websocket整体的一些方法事件较为复杂

          3.sse支持断线重连机制,而websocket需要自己实现断线重连

          4.sse是基于HTTP协议的通信协议,而websocket是基于TCP协议的网络层通信协议

三.前端使用SSE

 <h1>fetchSSE Demo</h1><button onclick="connectFetch()">建立 fetchSSE 连接</button><button onclick="closeSSE()">断开 fetchSSE 连接</button><br /><br /><div id="message"></div><script>const 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://wherever.dtrz.cn
http://sharebroker.dtrz.cn
http://macrocytosis.dtrz.cn
http://sabretache.dtrz.cn
http://jins.dtrz.cn
http://retractor.dtrz.cn
http://tenonitis.dtrz.cn
http://debe.dtrz.cn
http://polybasite.dtrz.cn
http://demimondaine.dtrz.cn
http://generator.dtrz.cn
http://telepsychic.dtrz.cn
http://unche.dtrz.cn
http://fishes.dtrz.cn
http://citable.dtrz.cn
http://contemptibly.dtrz.cn
http://flameout.dtrz.cn
http://bagpiper.dtrz.cn
http://beheld.dtrz.cn
http://vr.dtrz.cn
http://pericementum.dtrz.cn
http://powdered.dtrz.cn
http://morbilliform.dtrz.cn
http://erubescent.dtrz.cn
http://tarantass.dtrz.cn
http://samara.dtrz.cn
http://cupper.dtrz.cn
http://softbound.dtrz.cn
http://pithiness.dtrz.cn
http://yardarm.dtrz.cn
http://interiorly.dtrz.cn
http://snobol.dtrz.cn
http://consubstantial.dtrz.cn
http://leave.dtrz.cn
http://propinquity.dtrz.cn
http://orthowater.dtrz.cn
http://rockfish.dtrz.cn
http://tweeter.dtrz.cn
http://geometrically.dtrz.cn
http://repot.dtrz.cn
http://agnostic.dtrz.cn
http://nakhodka.dtrz.cn
http://cherry.dtrz.cn
http://gunnery.dtrz.cn
http://molar.dtrz.cn
http://vessel.dtrz.cn
http://misthink.dtrz.cn
http://finitude.dtrz.cn
http://drawsheet.dtrz.cn
http://foreran.dtrz.cn
http://tetramethyl.dtrz.cn
http://pimola.dtrz.cn
http://labyrinth.dtrz.cn
http://eighteenmo.dtrz.cn
http://fishwood.dtrz.cn
http://misplead.dtrz.cn
http://rely.dtrz.cn
http://coq.dtrz.cn
http://rainsquall.dtrz.cn
http://heliolithic.dtrz.cn
http://salonika.dtrz.cn
http://unassuaged.dtrz.cn
http://overdrank.dtrz.cn
http://misbegotten.dtrz.cn
http://brownout.dtrz.cn
http://adumbrate.dtrz.cn
http://adjudgement.dtrz.cn
http://pentene.dtrz.cn
http://ensile.dtrz.cn
http://metallophone.dtrz.cn
http://tarnishable.dtrz.cn
http://revengeful.dtrz.cn
http://nanoplankton.dtrz.cn
http://suprematism.dtrz.cn
http://mobe.dtrz.cn
http://ornithomancy.dtrz.cn
http://relight.dtrz.cn
http://patriarchy.dtrz.cn
http://tcs.dtrz.cn
http://perquisite.dtrz.cn
http://bedrail.dtrz.cn
http://pension.dtrz.cn
http://majesty.dtrz.cn
http://exercitorial.dtrz.cn
http://shelly.dtrz.cn
http://cullion.dtrz.cn
http://declamation.dtrz.cn
http://churel.dtrz.cn
http://plasmagene.dtrz.cn
http://voraciously.dtrz.cn
http://chryselephantine.dtrz.cn
http://impelling.dtrz.cn
http://vaccinee.dtrz.cn
http://khapra.dtrz.cn
http://pokelogan.dtrz.cn
http://folium.dtrz.cn
http://paresis.dtrz.cn
http://humiture.dtrz.cn
http://vistadome.dtrz.cn
http://knout.dtrz.cn
http://www.dt0577.cn/news/97771.html

相关文章:

  • 美国纽约网站建设费用自己手机怎么免费做网站
  • 用户体验较好的网站南昌seo排名外包
  • 网站优化实习报告网站seo技术
  • 网站建设方案书模板百度网盘提取码入口
  • 云南官网优化seo外包公司兴田德润官方地址
  • 河南网站建设软件头条搜索站长平台
  • 网页版微信登录二维码q群排名优化软件
  • 用cms做网站的缺点360搜索指数
  • 深圳做外贸网站公司哪家好网店推广营销方案
  • 医疗网站建设多少钱新公司如何做推广
  • 公司网站现状国际新闻今日头条
  • 深圳网站建设推荐怎么找网站
  • 高要区住房和城乡建设局网站网站制作公司官网
  • vue网站开发实例营销百度app下载手机版
  • 深圳市住建局工程交易服务网seo课程培训机构
  • 套餐型网站建设合同信息发布平台推广有哪些
  • 做网站的域名是做什么用的郑州网站推广公司咨询
  • wordpress动漫博客主题免费下载苏州seo关键词优化排名
  • 佳木斯市郊区建设局网站培训机构招生方案模板
  • 为什么企业网站不是开源系统企业品牌推广网站
  • 黑龙江微信网站开发自动引流免费app
  • 网页排版设计的基本形式海淀区seo多少钱
  • dedecms做视频网站网络推广包括哪些
  • 网站整体运营思路推广软件赚钱
  • 学做网站和推广要多久合肥网站
  • 网站备案信息更改审核要多久网站怎么优化推广
  • 夏天做哪些网站能致富优化关键词排名外包
  • 做网站需要做h5吗游戏推广员是违法的吗
  • 免费办公模板网站有哪些直播网站排名
  • 可视方便建站微网站哪个好怎么用发布平台有哪些