首页IT科技server是指什么(Server-Sent Events(以下简称 SSE)及event-source-polyfill使用单向长连接(后台主动向前端推送))

server是指什么(Server-Sent Events(以下简称 SSE)及event-source-polyfill使用单向长连接(后台主动向前端推送))

时间2025-05-02 04:52:10分类IT科技浏览5503
导读:SSE 与 WebSocket 作用相似,都是建立浏览器与服务器之间的通信渠道,然后服务器向浏览器推送信息SSE 是单向通道,只能服务器向浏览器发送,因为流信息本质上就是下载。如果浏览器向服务器发送信息,就变成了另一次 HTTP 请求...

SSE 与 WebSocket 作用相似            ,都是建立浏览器与服务器之间的通信渠道                       ,然后服务器向浏览器推送信息SSE 是单向通道       ,只能服务器向浏览器发送         ,因为流信息本质上就是下载            。如果浏览器向服务器发送信息                      ,就变成了另一次 HTTP 请求

使用方法 

Server-Sent Events 教程 - 阮一峰的网络日志https://www.ruanyifeng.com/blog/2017/05/server-sent_events.html

缺点:不可以比如请求头中加token等

getSSE() { return new Promise((resolve, reject) => { let base = process.env.VUE_APP_SYSTEMURL; let url = `${base}/server/sampleRemovePush/sse`; if (window.EventSource) { this.SSE = new EventSource(url); this.SSE.addEventListener( "open", e => { console.log("建立连接                       。       。         。", e); }, false ); this.SSE.addEventListener( "message", event => { console.log("ebent", event); resolve(event); }, false ); this.SSE.addEventListener( "error", event => { // readyState连接状态: 0 - connecting; 1 - open; 2 - closed; if ((event.readyState = EventSource.CLOSED)) { console.log("sse错误------", event); reject("请求错误!"); } else { resolve(event); } }, false ); // this.SSE.addEventListener("close", event => { // console.log("我要关闭啦", event.type); // this.SSE.close(); // }); } else { console.log("你的浏览器不支持SSE"); } }); },

 如果加自定义参数可以使用三方插件event-source-polyfill

GitHub - Yaffle/EventSource: a polyfill for http://www.w3.org/TR/eventsource/a polyfill for http://www.w3.org/TR/eventsource/. Contribute to Yaffle/EventSource development by creating an account on GitHub.https://github.com/Yaffle/EventSource/使用方法

npm install event-source-polyfill import {EventSourcePolyfill} from event-source-polyfill; let base = process.env.VUE_APP_SYSTEMURL; let url = `${base}/server/sampleRemovePush/sse`; let { access_token } = this.$store.state.login.login; var es = new EventSourcePolyfill(url, { headers: { Authorization: access_token ? `Bearer${access_token}` : "" } }); es.onopen = function(event) { console.log("连接成功", event); }; es.onmessage = function(event) { // to to something… console.log("接收信息", event); }; es.onerror = function(error) { // 监听错误 console.log("错误", error); };

可 以看到token是有加上去的 

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
airpods怎么注销用户(airpods怎么注销 airpods解除绑定教程) ant design vue table复选框禁用(vite + vue + ts 自动按需导入 Element Plus组件,并如何解决按需引入后ElMessage与ElLoading 的问题(找不到名称“ElMessage”问题。))