博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ABP源码分析三十二:ABP.SignalR
阅读量:7079 次
发布时间:2019-06-28

本文共 991 字,大约阅读时间需要 3 分钟。

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。

 

返回

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

你可能感兴趣的文章
centos7 安装java+tomcat
查看>>
Uncaught TypeError: form.attr is not a function 解决办法
查看>>
HDU 1023 Train Problem II( 大数卡特兰 )
查看>>
图片的画图板
查看>>
Activex、OLE、COM、OCX、DLL之间的区别(转)
查看>>
MYSQL远程登录权限设置 ,可以让Navicat远程连接服务器的数据库
查看>>
ajax跨域
查看>>
Linux下Tomcat复制一个新的文件夹后无法启动的问题
查看>>
Linux编程 16 文件权限(组管理 groupadd, groupmod,文件权限介绍)
查看>>
hdu5521 Meeting
查看>>
android学习笔记之handler(2)
查看>>
【LeetCode每天一题】Group Anagrams(变位词组)
查看>>
python学习笔记(五)文件操作和集合
查看>>
Python中字符串切片详解
查看>>
Caffe初学者第二部:Ubuntu16.04上安装caffe(CPU)+Matlab2014a+Opencv3的详细过程 (亲测成功, 20180529更新)...
查看>>
javascript实现双向数据绑定
查看>>
Python3学习笔记28-HtmlTestRunner
查看>>
使用Ext JS,不要使用页面做组件重用,尽量不要做页面跳转
查看>>
职场人的“存在主义”哲学
查看>>
抢先体验SQL Server 2014 CTP1!
查看>>