当前位置: 首页 > news >正文

ABP源码分析三十二:ABP.SignalR

Realtime

Realtime是ABP底层模块提供的功能,用于管理在线用户。它是使用SignalR实现给在线用户发送通知的功能的前提

IOnlineClient/OnlineClient: 封装在线用户的信息

OnlineClientManager/IOnlineClientManager: 用于提供基本维护在线用户的方法。其内部维护了一个字典来保存在线的客户信息。

 

 

 

SingalR

SignalRRealTimeNotifier: 实现了给在线用户发送通知的功能。其从IOnlineClientManager中获取在线客户列表,然后比对通知UserNotification中的uerid,从而实现定向发送通知的功能。

 

AbpCommonHub:重写了Hub中的OnConnectedOnDisconnected方法,在这两个方法中将当前用户添加/移除出IOnlineClientManager对象的集合。

 

 

WindsorDependencyResolver:继承自系统默认的DefaultDependencyResolver,用于替换默认的serviceContainer为Castle的IWindsorContainer。

 

 

AbpSignalRContractResolver:实现了NewtonSoft的IContractResolver接口。其封装了一个IgnoredAssemblies集合。实现ResolveContract方法:如果type的assembly在IgnoredAssemblies中就使用DefaultContractResolver,否则就使用CamelCasePropertyNamesContractResolver。

 

 

AbpWebSignalRModule:完成SignalR模块的初始化,主要完成以下三方面的工作:

使用WindsorDependencyResolver替换DefaultDependencyResolver

根据ABP的regiser 规则,对SignalR模块的接口或类进行register

设置JsonSerializer的ContractResolver为AbpSignalRContractResolver。

 

返回ABP源码分析系列文章目录

转载于:https://www.cnblogs.com/1zhk/p/5397579.html

相关文章:

  • office2003 安装步骤及注意事项
  • 我的屌丝giser成长记-研一篇(下)
  • 本周活动
  • MapReduce的过程(2)
  • Android 双卡双待识别
  • 房坑
  • 该不该用inline-block取代float? inline和float的区别?
  • hibernate--联合主键--XML
  • 动态素组(ArrayList)
  • cssReset - css初始化
  • KeyMob移动广告聚合平台 开发者赚钱平台
  • Lua非常有用的工具——递归打印表数据
  • C风格字符串
  • UVa 10924-Prime Words
  • linux Shell编程
  • [deviceone开发]-do_Webview的基本示例
  • angular学习第一篇-----环境搭建
  • CentOS7简单部署NFS
  • CSS实用技巧
  • Essential Studio for ASP.NET Web Forms 2017 v2,新增自定义树形网格工具栏
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • LeetCode算法系列_0891_子序列宽度之和
  • Linux gpio口使用方法
  • PHP变量
  • Redis在Web项目中的应用与实践
  • Spring声明式事务管理之一:五大属性分析
  • 工程优化暨babel升级小记
  • 和 || 运算
  • 警报:线上事故之CountDownLatch的威力
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 一道闭包题引发的思考
  • Hibernate主键生成策略及选择
  • 阿里云服务器如何修改远程端口?
  • ​业务双活的数据切换思路设计(下)
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • %@ page import=%的用法
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (Python第六天)文件处理
  • (差分)胡桃爱原石
  • (附表设计)不是我吹!超级全面的权限系统设计方案面世了
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (十一)c52学习之旅-动态数码管
  • (学习日记)2024.03.25:UCOSIII第二十二节:系统启动流程详解
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (转)程序员技术练级攻略
  • ****** 二 ******、软设笔记【数据结构】-KMP算法、树、二叉树
  • .net 流——流的类型体系简单介绍
  • .NET 自定义中间件 判断是否存在 AllowAnonymousAttribute 特性 来判断是否需要身份验证
  • .NET/C# 使用 SpanT 为字符串处理提升性能
  • .NET单元测试
  • .net开发时的诡异问题,button的onclick事件无效