.net core 3.0 Signalr - 02 使用强类型的Hub
程序员文章站
2022-04-14 22:34:31
强类型的优缺点 优点 强类型的Hub可以避免魔法函数名,相比弱类型更容易维护和发现问题,直接上代码 缺点 特么的得多些好几行代码 代码 接口定义 实现 对之前的Hub进行修改,暂时就先通过OnNotify给当前所有客户端推送一个信息 在api中调用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,代码如下c# ... 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压缩传输内容 |
源码地址 | 源码 |
官方文档 | 官方文档 |