強類型的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壓縮傳輸內容 |
源碼地址 | 源碼 |
官方文檔 | 官方文檔 |