码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-04-16 09:34:40      阅读:322      评论:0      收藏:0      [点我收藏+]

标签:

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源码分析系列文章目录

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

标签:

原文地址:http://www.cnblogs.com/1zhk/p/5397579.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!