uniapp使用@microsoft/signalr(报错“ReferenceError: require is not defined“)
后台老哥要用微软的signalr,总结了一些经验和问题
引入方法
1、npm
npm i @microsoft/signalr
2、下载他的js或者cdn
<script src="https://cdnjs.cloudflare.com/ajax/libs/microsoft-signalr/6.0.1/signalr.js"></script>
在uniapp中,h5是正常的,运行到App会报ReferenceError: require is not defined

可以使用renderjs
用法不想看可以直接复制
<script module="test" lang="renderjs">import * as signalR from "@microsoft/signalr";export default {data() {return {connection: null}},mounted() {// 建立连接console.log(signalR)this.connection = new signalR.HubConnectionBuilder().withUrl("xxxxx") // 此处填服务器地址.configureLogging(signalR.LogLevel.Information).build();// 注册方法(给后端调用的,需要在methods中定义)// this.connection.on("ReceiveMessage", this.ShowMsg);// 开始连接this.connection.start().then((res) => {console.log("Connected!a")this.$ownerInstance.callMethod('isConnected', {connected: true})this.connection.invoke("SendMessage", "hello world")}).catch((err) => {console.log(err)});return}}
</script>
注:可以直接新建一个script 标签,放在原页面script 标签的下面,像这样。

顺道写下使用方法 signalr文档,不太友好
注:在renderjs中,uni的东西都不可以使用
先引入。或者使用上面那种引入
import {HubConnectionBuilder} from "@microsoft/signalr";
建立连接
withAutomaticReconnect()这个是自动断线重连,就简单测试了一下是有用的所以不需要自己写心跳。
// 建立连接this.connection = new HubConnectionBuilder().withUrl(url) // 此处填服务器地址// .configureLogging(signalR.LogLevel.Information).withAutomaticReconnect().build();
开始连接
有成功和失败的回调
this.connection.start().then(() => {console.log('Connection established.');}).catch((error) => {console.error('Error connecting to SignalR server: ', error);});
调用SignalR服务器端的方法
第一个是方法名称,后面具体参数看后台
this.connection.invoke('serverMethod', data).then((response) => {console.log('Received response from SignalR server: ', response);}).catch((error) => {console.error('Error calling server method: ', error);});
接收服务器返回值
通过on来接收,第一个是方法名称
this.connection.on("ReceiveMessage",(res)=>{})
具体推送可以写在上面,推送文档 plus.push
注:需要在打包的时候勾选uni.push
let content = JSON.parse(message).name +'有一条新的危急值消息!';let options = {"cover": false,"when": new Date(),'title': "危急值"};let body = {'id': 'id','key': "key"}// let payload = JSON.stringify(body);plus.push.createMessage(content, '', options);
相关文章:
uniapp使用@microsoft/signalr(报错“ReferenceError: require is not defined“)
后台老哥要用微软的signalr,总结了一些经验和问题 引入方法 1、npm npm i microsoft/signalr 2、下载他的js或者cdn <script src"https://cdnjs.cloudflare.com/ajax/libs/microsoft-signalr/6.0.1/signalr.js"></script>在uniapp中&…...
CloudCompare 二次开发(9)——半径滤波
目录 一、概述二、代码集成三、结果展示本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、概述 使用CloudCompare与PCL的混合编程实现点云半径滤波。半径滤波的算法原理见:PCL 半径滤波器。基于PCL将半径滤波集成到Cl…...
ElementUI浅尝辄止29:Breadcrumb 面包屑
显示当前页面的路径,快速返回之前的任意页面。 1.如何使用? 在el-breadcrumb中使用el-breadcrumb-item标签表示从首页开始的每一级。Element 提供了一个separator属性,在el-breadcrumb标签中设置它来决定分隔符,它只能是字符串&am…...
ABB MPRC086444-005数字输入模块
ABB MPRC086444-005 是一款数字输入模块,通常用于工业自动化和控制系统中,用于接收和处理数字信号。以下是这种类型的数字输入模块通常可能具备的一般功能和特点: 数字输入接口:MPRC086444-005 模块通常配备多个数字输入通道&…...
stable diffusion实践操作-常见lora模型介绍
系列文章目录 本文专门开一节写Lora相关的内容,在看之前,可以同步关注: stable diffusion实践操作 文章目录 系列文章目录前言一、什么是lora?1.1 lora 定义1.2 lora的基本原理1.2 通过分层控制lora 二、作用:2.1 复刻人物特征2…...
kubeadm 安装k8s
目录 安装k8s 环境准备 所有节点,关闭防火墙规则,关闭selinux,关闭swap交换(必须关闭swap分区) //修改主机名 //所有节点修改hosts文件 //调整内核参数 所有节点安装docker 所有节点安装kubeadm,kube…...
选择最适合您的Bug管理软件:市场比较与推荐
“Bug管理软件哪家好?市场上有许多优秀的Bug管理系统品牌如:Zoho Projects、JIRA、Redmine、Bugzilla、MantisBT。” 一款高效的Bug管理系统可以帮助团队更有效地发现、记录和解决软件中的问题,从而提高产品质量和用户满意度。本文将为您介绍…...
Spring MVC的常用注解及用法
Spring MVC的执行流程: 1.用户的请求首先到Controller 2.Controller将请求转发给Model 3.Model处理业务并将数据结果给Controller 4.Controller会将数据给View引擎 5.View转换数据生成最终的页面给用户。 常用注解: 1.requestMapping:…...
HTTP和HTTPS的区别、 HTTPS运行原理
HTTP 一种用于web浏览器和web服务器基于数据传递的协议基于TCP/IP协议的应用层传送,用于客户端和服务器之间的数据交互 HTTPS 是HTTP的安全版,基于SSL或TLS协议,对客户端和服务器之间加密和身份验证,使得数据之间传递具有了安全…...
统计封闭岛屿的数目
1254. 统计封闭岛屿的数目 关于岛屿的相似题目: 岛屿数量 – 二维矩阵的dfs算法封闭岛屿数量 – 二维矩阵的dfs算法统计封闭岛屿的数目统计子岛屿不同岛屿的数量 class MaxAreaOfIsland:"""floodFill 算法1254. 统计封闭岛屿的数目https://leetcod…...
【数据结构与算法系列4】长度最小的子数组
给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl1, ..., numsr-1, numsr] ,并返回其长度**。**如果不存在符合条件的子数组,返回 0 。 示例 1: 输入&…...
问道管理:底部渐渐抬高 今年反弹时刻或已来临
快速探底后,两市呈现分解走势。 沪指周三低开震动,指数在20日均线取得支撑后小幅上升,最终以红盘报收。深成指走势弱于沪指,尽管午后指数有所上升,但最终未能翻红。到收盘,沪指报收3158.08点,上…...
正规黄金代理的三大要素
对于现货黄金投资来说,寻找一个正规的黄金代理是十分重要的问题。在目前的现货黄金投资市场中,现货黄金代理的数量很多,他们都致力于耕耘现货黄金投资市场。当越来越多的专业人士加入到现货黄金投资的市场中当中时,这个市场将会越…...
Spine2D骨骼动画播放器 - 微信小程序版
Spine2D骨骼动画播放器 - 微信小程序版 简介平台支持 界面预览使用说明演示视频 版本笨笨的小目标(废话)参考资料测试文件百度盘分享 相关文档 简介 本播放器是SpinePlayer的微信小程序版。由于官方并没有提供现成的运行库,只能自己改造。 设…...
蓝天转债,双良转债上市价格预测
蓝天转债111017 基本信息 转债名称:蓝天转债,评级:AA,发行规模:8.7亿元。 正股名称:蓝天燃气,今日收盘价:9.74元,转股价格:10.13元。 当前转股价值 转债面值…...
python-爬虫-xpath方法-批量爬取王者皮肤图片
import requests from lxml import etree获取NBA成员信息 # 发送的地址 url https://nba.hupu.com/stats/players # UA 伪装 google header {User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.3…...
go锁--读写锁
每个锁分为读锁和写锁,写锁互斥 没有加写锁时,多个协程都可以加读锁 加了写锁时,无法加读锁,读协程排队等待 加了读锁,写锁排队等待 Mutex用来写协程之间互斥等待 读协程使用readerSem等待写锁的释放 写协程使用writer…...
Unity中Shader的屏幕坐标
文章目录 前言一、屏幕坐标1、屏幕像素的坐标2、屏幕坐标归一化 二、在Unity中获取 当前屏幕像素 和 总像素1、获取屏幕总像素,使用_ScreenParams参数2、获取当前片段上的像素怎么使用:在片元着色器传入参数时使用 前言 Unity中Shader的屏幕坐标 一、屏幕坐标 1、屏幕像素的坐…...
springboot MongoDB 主从 多数据源
上一篇,我写了关于用一个map管理mongodb多个数据源(每个数据源,只有单例)的内容。 springboot mongodb 配置多数据源 临到部署到阿里云的测试环境,发现还需要考虑一下主从的问题,阿里云买的数据库&#x…...
【100天精通Python】Day57:Python 数据分析_Pandas数据描述性统计,分组聚合,数据透视表和相关性分析
目录 1 描述性统计(Descriptive Statistics) 2 数据分组和聚合 3 数据透视表 4 相关性分析 1 描述性统计(Descriptive Statistics) 描述性统计是一种用于汇总和理解数据集的方法,它提供了关于数据分布、集中趋势和…...
Vim 调用外部命令学习笔记
Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...
[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...
laravel8+vue3.0+element-plus搭建方法
创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...
JVM 内存结构 详解
内存结构 运行时数据区: Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器: 线程私有,程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 每个线程都有一个程序计数…...
AGain DB和倍数增益的关系
我在设置一款索尼CMOS芯片时,Again增益0db变化为6DB,画面的变化只有2倍DN的增益,比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析: 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...
深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用
文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么?1.1.2 感知机的工作原理 1.2 感知机的简单应用:基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...
Go 并发编程基础:通道(Channel)的使用
在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...
MFC 抛体运动模拟:常见问题解决与界面美化
在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...
(一)单例模式
一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...
