Realtime

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

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

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

SingalR

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

AbpCommonHub:重写了Hub中的OnConnected和OnDisconnected方法,在这两个方法中将当前用户添加/移除出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相关推荐

  1. ABP源码分析三十:ABP.RedisCache

    ABP 通过StackExchange.Redis类库来操作Redis数据库. AbpRedisCacheModule:完成ABP.RedisCache模块的初始化(完成常规的依赖注入) AbpRed ...

  2. 【转】ABP源码分析三十:ABP.RedisCache

    ABP 通过StackExchange.Redis类库来操作Redis数据库. AbpRedisCacheModule:完成ABP.RedisCache模块的初始化(完成常规的依赖注入) AbpRed ...

  3. 【转】ABP源码分析三十八: ABP.Web.Api.OData

    如果对OData不熟悉的话可参考OData的初步认识一文以获取OData的一些初步知识. API.Odata 模块唯一用处就是提供了一个泛型版本的ODataController,实现了Controll ...

  4. ABP源码分析三十四:ABP.Web.Mvc

    ABP.Web.Mvc模块主要完成两个任务: 第一,通过自定义的AbpController抽象基类封装ABP核心模块中的功能,以便利的方式提供给我们创建controller使用. 第二,一些常见的基础 ...

  5. 【转】ABP源码分析三十五:ABP中动态WebAPI原理解析

    动态WebAPI应该算是ABP中最Magic的功能之一了吧.开发人员无须定义继承自ApiController的类,只须重用Application Service中的类就可以对外提供WebAPI的功能, ...

  6. 【转】ABP源码分析三十四:ABP.Web.Mvc

    ABP.Web.Mvc模块主要完成两个任务: 第一,通过自定义的AbpController抽象基类封装ABP核心模块中的功能,以便利的方式提供给我们创建controller使用. 第二,一些常见的基础 ...

  7. 【转】ABP源码分析四十二:ZERO的身份认证

    ABP Zero模块通过自定义实现Asp.Net Identity完成身份认证功能, 对Asp.Net Identity做了较大幅度的扩展.同时重写了ABP核心模块中的permission功能,以实现 ...

  8. 【转】ABP源码分析三十九:ABP.Hangfire

    ABP对HangFire的集成主要是通过实现IBackgroundJobManager接口的HangfireBackgroundJobManager类完成的. HangfireBackgroundJo ...

  9. 【转】ABP源码分析三十六:ABP.Web.Api

    这里的内容和ABP 动态webapi没有关系.除了动态webapi,ABP必然是支持使用传统的webApi.ABP.Web.Api模块中实现了一些同意的基础功能,以方便我们创建和使用asp.net w ...

最新文章

  1. 深入浅出——网络模型中Inception的作用与结构全解析
  2. 只使用了符号的Ruby程序
  3. php websocket 帧封装,swoole websocket封装类和调用
  4. Leetcode每日一题:127.word-ladder(单词接龙)
  5. logging日志模块
  6. [转]MTK android 下载及启动过程
  7. Scrapy 发起post请求
  8. Atitit 常见概念与技术 dom及其解析 目录 1.1. Dom概念(文档对象模型(Document Object Model))是什么 1 1.1.1. 节点 2 1.1.2. Node 层次
  9. 实现Springboot整合UReport2
  10. selenium与firefox、 chrome版本对应关系
  11. java如何改变图片大小_如何在Java中调整图片大小?
  12. 华为emul升级_EMUI11正式版下载_华为emui11下载最新完整包2020(附升级教程及支持型号)-刷机之家...
  13. AD(altium designer)15原理图与PCB设计教程(六)——印制电路板设计的基础知识
  14. 通信端口感叹号_WAN微型端口有黄色感叹号无线网络连接不上
  15. 纹波(ripple)--学习笔记
  16. 富怡CAD计算机在哪,富怡CAD的工具介绍之一
  17. 【2021】朱伟(恋练有词)
  18. 如何让新入职员工尽快融入集体,进入工作岗位
  19. 使用Arduino开发ESP32:关于esp32 wifi连接不上的解决办法
  20. 配置HTTPS,和HTTPS转HTTP

热门文章

  1. android 面试汇总二
  2. mac下用xattr命令来删除文件的扩展属性
  3. php: +1天, +3个月, strtotime(): +1 day, +3 month
  4. 几个python小程序
  5. python 爬虫002-http与urllib2
  6. 每天CookBook之JavaScript-059
  7. 关于开发中的常用手段(个人建议)
  8. 上周热点回顾(6.17-6.23)
  9. 三极管驱动(讲的比较好)
  10. symbian c++ 开发环境Carbide.c++搭建