.net core 3.0 Signalr - 02 使用强类型的Hub

强类型的优缺点

  • 优点
    强类型的Hub可以避免魔法函数名,相比弱类型更容易维护和发现问题,直接上代码
  • 缺点
    特么的得多些好几行代码

代码

接口定义

    /// <summary>
    /// 服务端接口
    /// </summary>
    public interface IServerNotifyHub
    {

    }

    /// <summary>
    /// 客户端使用的接口
    /// </summary>
    public interface IClientNotifyHub
    {
        // 这里我们定义一个统一的客户端通知方法
        Task OnNotify(object data);
    }

实现

  • 对之前的Hub进行修改,暂时就先通过OnNotify给当前所有客户端推送一个信息
  public class NotifyHub : Hub<IClientNotifyHub>,IServerNotifyHub
    {
        public override async Task OnConnectedAsync()
        {
            await Clients.All.OnNotify(new { ConnectId = Context.ConnectionId });
            await base.OnConnectedAsync();
        }
    }


在api中调用Hub推送

大部分情况下,是通过客户端某个操作,比如:将任务分配给张三,那么在分配任务的这个api中会调用推送 推送给张三一个通知,xxx分配了一个任务给你,在Controller中注入强类型的Hub,代码如下

  ...
  private readonly IHubContext<NotifyHub,IClientNotifyHub> _notifyHub;
  public NotifyController(IHubContext<NotifyHub,IClientNotifyHub> notifyHub)
  {
      _notifyHub = notifyHub;
  }

至此,强类型的Hub介绍完毕,更多内容请通过快速导航查看下一篇

快速导航

标题
内容
索引
.net core 3.0 Signalr - 实现一个业务推送系统
上一篇
.net core 3.0 Signalr - 01 基础篇
下一篇
.net core 3.0 Signalr - 03 使用MessagePack压缩传输内容
源码地址
源码
官方文档
官方文档

二维码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值