tips: 在react的全局定义了一个connectionR, 以便后续退出当前组件时好销毁
react部分代码:
1.安装 npm install @aspnet/signalr
2.引入
import * as signalR from '@aspnet/signalr';
3.初始化
// url为后台给你的地址
this.connectionR = new signalR.HubConnectionBuilder()
.withUrl(config.signalRUrl)
.build();
4.start 启动
//调用connectionR的start启动连接 并在连接成功以后 调用.net后台的方法guang_bo
this.connectionR.start().then((res:any)=>{
let a = "Grid"
this.connectionR.invoke("guang_bo",a).then((res:any)=>{
console.log('注入成功',res)
}).catch((error:any)=>{
console.log('注入失败',error)
})
})
5.watch监听
this.connectionR.on('guang_bo', (data:any) => {
// .net后台返回的数据 下面做客户端需要的逻辑操作
let listData = JSON.parse(data)
console.log('watch监听',listData)
let allCount =listData.Data?Math.ceil(listData.Data.length/listData.PageCount):0
let list = listData?listData.Data.slice((this.state.current - 1)*listData.PageCount,this.state.current*listData.PageCount):[]
this.setState({
list:listData.Data,
total:listData.Total,
pageCount:allCount,
pageSize:listData.PageCount,
curentList:list
})
})