强类型的Hub能够避免魔法函数名,相比弱类型更容易维护和发现问题,直接上代码git
特么的得多些好几行代码github
/// <summary> /// 服务端接口 /// </summary> public interface IServerNotifyHub { } /// <summary> /// 客户端使用的接口 /// </summary> public interface IClientNotifyHub { // 这里咱们定义一个统一的客户端通知方法 Task OnNotify(object data); }
public class NotifyHub : Hub<IClientNotifyHub>,IServerNotifyHub { public override async Task OnConnectedAsync() { await Clients.All.OnNotify(new { ConnectId = Context.ConnectionId }); await base.OnConnectedAsync(); } }
大部分状况下,是经过客户端某个操做,好比:将任务分配给张三,那么在分配任务的这个api中会调用推送 推送给张三一个通知,xxx分配了一个任务给你,在Controller中注入强类型的Hub,代码以下api
... private readonly IHubContext<NotifyHub,IClientNotifyHub> _notifyHub; public NotifyController(IHubContext<NotifyHub,IClientNotifyHub> notifyHub) { _notifyHub = notifyHub; }
至此,强类型的Hub介绍完毕,更多内容请经过快速导航查看下一篇async
标题 | 内容 |
---|---|
索引 | .net core 3.0 Signalr - 实现一个业务推送系统 |
上一篇 | .net core 3.0 Signalr - 01 基础篇 |
下一篇 | .net core 3.0 Signalr - 03 使用MessagePack压缩传输内容 |
源码地址 | 源码 |
官方文档 | 官方文档 |