.net core 3.0 Signalr - 01 基础篇
因为将signalr作为单独的站点,此处需要建立两个项目,一个专门用于signalr作为推送项目,一个客户端(实际的业务项目)
基础知识速览
clients对象属性
属性 | 描述 |
---|---|
all | 在所有连接的客户端上调用方法 |
caller | 在调用集线器方法的客户端上调用方法 |
others | 除当前连接外的所有连接 |
clients对象方法
方法 | 描述 |
---|---|
allexcept | 在所有连接的客户端(指定的连接除外)上调用方法 |
client | 在特定连接的客户端上调用方法(单个) |
clients | 在特定连接的客户端上调用方法(多个) |
group | 对指定组中的所有连接调用方法 |
groupexcept | 对指定组中的所有连接调用方法,指定的连接除外 |
groups | 在多组连接上调用方法 |
othersingroup | 对一组连接调用方法,而不包括调用该集线器方法的客户端 |
user | 对与特定用户关联的所有连接调用方法 |
users | 对与指定用户相关联的所有连接调用方法 |
signalr推送端
- 通过命令行或者vs 2019新建.netcore web项目,选择.net core 3.0、webapi
-
建立一个hub
``` c#
public class notifyhub : hub
{}
``` - 修改startup中的configservices方法,注册对应的服务
c# // 添加signalr services.addsignalr(config => { // _webenv为通过依赖注入在startup的构造函数中注入的 iwebhostenvironment if (_webenv.isdevelopment()) { config.enabledetailederrors = true; } });
修改configure配置http请求的管道
``` c#
...
app.userouting();
app.useendpoints(endpoints =>{
endpoints.maphub("/notify-hub");
});```
业务端
-
创建连接对象
``` js
var connection=new signalr.hubconnectionbuilder()
.configurelogging(signalr.loglevel.error) // 前端控制台的日志级别,根据需要配置
.withurl('') // 连接地址,这个地址是signalr项目的地址
.withautomaticreconnect([0, 2000, 5000, 10000, 20000]) // 配置重连的时间
.build();// 重连的时候触发
connection.onreconnecting(function (info) {
console.info('----------------------------------signalr-- onreconnecting', info);
});//连接关闭的回调
connection.onclose(function (err) {
console.info('--------------------------------signalr-- onclose', err);
});connection.start().then(function (data) {
console.log('已成功连接到signalr服务器')
}).catch(function (error) {
console.error(error.tostring());
});```
更多内容请通过快速导航查看下一篇
快速导航
标题 | 内容 |
---|---|
索引 | .net core 3.0 signalr - 实现一个业务推送系统 |
下一篇 | .net core 3.0 signalr - 02 使用强类型的hub |
源码地址 | 源码 |
官方文档 | 官方文档 |
上一篇: DLL:操作数据库和表
下一篇: 怎么选榴莲才好吃,吃榴莲对身体有何好处?
推荐阅读
-
【从零开始搭建自己的.NET Core Api框架】(三)集成轻量级ORM——SqlSugar:3.2 在框架的基础上利用SqlSugar快速实现CRUD实战篇
-
.net core 3.0 Signalr - 06 业务实现-业务分析
-
.net core 3.0 Signalr - 01 基础篇
-
.net core 3.0 Signalr - 09 待改进&交流
-
.net core 3.0 Signalr - 07 业务实现-服务端 自定义管理组、用户、连接
-
.net core 3.0 Signalr - 08 业务实现-客户端demo
-
.net core 3.0 Signalr - 05 使用jwt将用户跟signalr关联
-
.net core 3.0 Signalr - 实现一个业务推送系统
-
.net core 3.0 Signalr - 03 使用MessagePack压缩传输内容
-
.net core 3.0 Signalr - 04 使用Redis做底板来支持横向扩展