ABP框架学习记录(24)- Notifications 解析
Notifications
封装了通知的功能,实现 Notification
的定义,存储,发送,订阅等功能,支持租户通知,用户通知。通过 IRealTimeNotifier
接口,实现统一的 Notification
功能。支持 SignalR
。
Notifications
在ABP项目中的位置:
表-实体类对应
首先,介绍关于 Notifications
的表-实体类;
NotificationInfo
:用于存储需要发送的通知;
NotificationSubscriptionInfo
: 用于存储 通知订阅。
TenantNotificationInfo
: 分配给其相关租户的通知。
UserNotificationInfo
:用户存储用户通知
通知数据
NotificationData
:用户 通知数据的 存储;
MessageNotificationData
:继承 NotificationData
, 可以用户简单的通知消息;
LocalizableMessageNotificationData
:继承 NotificationData
, 可以用户表示本地的通知消息数据;
通知定义管理
NotificationDefinition
:定义通知
NotificationDefinitionManager
:实现 INotificationDefinitionManager
接口,用于管理 NotificationDefinition
;
AbpKernelModule
:PostInitialize
方法中初始化;
NotificationDefinitionContext
:定义 NotificationDefinition
上下文;
NotificationDefinitionManagerExtensions
:扩展方法,获取给定用户的所有通知;
配置
INotificationConfiguration
:配置通知;
NotificationConfiguration
:实现 INotificationConfiguration
接口;
AbpCoreInstaller
中注册:
持久化
INotificationStore
:定义通知持久化接口;
Abp.Zero.Common
项目中,使用仓储模式,提供 INotificationStore
接口的实现 NotificationStore
;
UserNotificationState
:定义通知的状态,已读,未读;
管理用户通知
IUserNotificationManager
:定义用户通知管理接口;
UserNotificationManager
:实现 IUserNotificationManager
接口;
UserNotification
:表示发送给用户的通知;
TenantNotification
:代表租户/用户 已经发送的通知;
发布通知
INotificationPublisher
:定义发布通知的接口;
NotificationPublisher
:实现 INotificationPublisher
接口;
PublishAsync
异步方法:
NotificationDistributionJob
:后台工作,去通知用户;
订阅通知
NotificationSubscription
:表示一个用户订阅的通知;
INotificationSubscriptionManager
:管理订阅通知;
NotificationSubscriptionManager
:实现 INotificationSubscriptionManager
;
通知设置
NotificationSettingNames
:定义通知开关 配置名;
NotificationSettingProvider
:适配器
AbpKernelModule
模块初始化:
发送通知
INotificationDistributer
:定义发送给用户通知的接口;
DefaultNotificationDistributer
:实现 INotificationDistributer
接口;
IRealTimeNotifier
:定义向用户发送实时通知的接口;