強型別的優缺點
- 優點
強型別的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壓縮傳輸內容 |
| 原始碼地址 | 原始碼 |
| 官方檔案 | 官方檔案 |

轉載請註明出處,本文鏈接:https://www.uj5u.com/net/110616.html
標籤:.NET Core
