.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
    public class NotifyHub : Hub
    {

    }

  • 修改Startup中的ConfigServices方法,注册对应的服务
    // 添加Signalr
    services.AddSignalR(config =>
    {
        // _webEnv为通过依赖注入在Startup的构造函数中注入的 IWebHostEnvironment
        if (_webEnv.IsDevelopment())
        {
            config.EnableDetailedErrors = true;
        }
    });
  • 修改Configure配置HTTP请求的管道
    ...
    app.UseRouting();
    app.UseEndpoints(endpoints =>{
        endpoints.MapHub<NotifyHub>("/notify-hub");
    });

业务端

相关文档

  • 创建连接对象
    var connection=new signalR.HubConnectionBuilder()
    .configureLogging(signalR.LogLevel.Error) // 前端控制台的日志级别,根据需要配置
    .withUrl('http://localhost:50001/notify-hub') // 连接地址,这个地址是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
源码地址
源码
官方文档
官方文档

二维码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值