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

uni-app连接EventSource

前言

uniapp默认是不支持event-source,这里是借助renderjs进行SSE连接

正文

引入event-source-polyfill
这里演示的是直接将代码下载到本地进行引入
下载地址
在这里插入图片描述
把里面的eventsource.min.js文件放到项目中的static文件夹
项目封装event-source.vue组件

<template><view :prop="info" :change:prop="sse.onChange" id="renderjs-view" />
</template><script>
import { BASE_URL } from "@/utils/config"
import { getToken } from "@/utils/auth"
import { storage } from "@/utils"export default {data() {return {info: {}}},created() {this.setInfo()},methods: {setInfo() {this.info = { url: BASE_URL, token: getToken(), userId: storage.getItem("userId") }},onMessage(e) {this.$emit('message', e)}}
}
</script><script module="sse" lang="renderjs">export default {data() {return { sseInfo:{}}},mounted() {this.setSSE()},methods: {setSSE() {if (typeof EventSourcePolyfill === "function") {this.initSSE()} else {const script = document.createElement('script')script.src = "static/js/eventsource.min.js"script.type = "text/javascript"script.onload = this.initSSE.bind(this)document.head.appendChild(script)}},initSSE() {const sse =  new EventSourcePolyfill(`${this.sseInfo.url}/sse/system-sse/sse-server?userId=${this.sseInfo.userId}_${Date.now()}`, {headers: {Authorization: "Bearer " + this.sseInfo.token,"Tenant-Id": 1}})sse.onmessage = (e) => {this.$ownerInstance.callMethod('onMessage', e)}},onChange(value) {this.sseInfo = value},}}
</script>

外部使用

<EventSource @message="onMessage"/><script lang="ts" setup>const onMessage = (e) => {// uni.showModal({// 	title: 'sse消息',// 	content: e.data,// })console.log("sse消息:",e)}
</script>
http://www.lryc.cn/news/524246.html

相关文章:

  • Spring Boot 实战:轻松实现文件上传与下载功能
  • 火狐浏览器Firefox一些配置
  • [STM32 HAL库]串口中断编程思路
  • C++入门 详细版
  • MIAOYUN信创云原生项目亮相西部“中试”生态对接活动
  • 网络编程 | UDP组播通信
  • T-SQL语言的语法
  • Java开发提效秘籍:巧用Apache Commons IO工具库
  • 第1章:Python TDD基础与乘法功能测试
  • web前端1--基础
  • .Net Core微服务入门全纪录(五)——Ocelot-API网关(下)
  • 2024嵌入式系统的未来发展与技术洞察分享
  • python-44-嵌入式数据库SQLite和DuckDB
  • 1.2.神经网络基础
  • 算法题目总结-双指针
  • 人形机器人将制造iPhone!
  • redis 各个模式的安装
  • 《王者荣耀》皮肤爬虫源码
  • 学习ASP.NET Core的身份认证(基于JwtBearer的身份认证8)
  • PyTorch使用教程(6)一文讲清楚torch.nn和torch.nn.functional的区别
  • React的应用级框架推荐——Next、Modern、Blitz等,快速搭建React项目
  • 基于GRU实现股价多变量时间序列预测(PyTorch版)
  • Java创建对象有几种方式?
  • Vue3初学之Element Plus Dialog对话框,Message组件,MessageBox组件
  • 基于Python机器学习的双色球数据分析与预测
  • 微软Win10 RP 19045.5435(KB5050081)预览版发布!
  • 使用 Parcel 和 NPM 脚本进行打包
  • HTML<center>标签
  • LatentSync本地部署教程:基于音频精准生成唇形高度同步视频
  • ES使用笔记,聚合分组后再分页,探索性能优化问题