[英]ABP real-time notification system UserId is null
我正在嘗試使用實時通知。 我嘗試了所有示例,但是當我SendNotificationsAsync
,我的客戶端沒有收到它。
此外, AbpNotifications
表始終為空。
啟動:
public class Startup
{
public void Configuration(IAppBuilder app)
{
GlobalHost.DependencyResolver.UseRedis("redis", 6379, "", "ChecklistCache");
app.MapSignalR();
}
}
子:
public async Task Subscribe_NewAlert(int? tenantId, long userId)
{
await _notificationSubscriptionManager.SubscribeAsync(new UserIdentifier(tenantId, userId), "NewAlert");
}
酒館:
public async Task Publish_NewAlert(string alert)
{
var msg = new MessageNotificationData($"New alert created! {alert}");
await _notiticationPublisher.PublishAsync("NewAlert", msg, severity: NotificationSeverity.Info);
}
我的工作:
[Abp.Domain.Uow.UnitOfWork]
public override void Execute(UserIdentifier args)
{
var notifications = _userNotificationManager.GetUserNotifications(args);
Abp.Threading.AsyncHelper.RunSync(() => _realTimeNotifier.SendNotificationsAsync(notifications.ToArray()));
}
我檢查了_realTimeNotifier
並且我的UserId
為空,但IOnlineClientManager
自動設置用戶。 我在哪里可以設置我的用戶 ID?
要使用 ABP 通知系統,我是否必須擁有 ABP 創建的所有公共表? ( AbpUser
、 AbpTenant
、 AbpRoles
、權限等)我可以更改這些表的名稱和列名稱嗎? 如果我使用外部登錄但我沒有所有這些信息,我還需要這些表嗎?
當我在執行時設置我的 ID 時,它可以工作。 此外,顯示通知后,它不會從數據庫中刪除,因此每次都會顯示。 我必須手動刪除嗎?
讓我試着澄清我需要什么:
每個登錄我網站的用戶都會訂閱"NewAlert"
。
我的 API 收到"NewAlerts"
因此 API 需要將此警報推送給所有訂閱者。 但在那之后,我需要向網站上的用戶發送實時通知。 我不知道如何從我的 Web API 中做到這一點。
現在它正在工作,在我對我的網站實施身份驗證之后。 但我現在的問題是我的通知不會過期。 每次發布通知時,我都會向我的客戶顯示AbpUserNotifications
表上的所有通知。
通知什么時候到期? 我的理解是,當我發布通知時,會在表AbpUserNotifications
上創建一條記錄,然后向客戶端顯示。 但是當我發布另一個通知時,它向我的客戶顯示了兩個通知。 我需要手動控制我的通知嗎?
我檢查了 _realTimeNotifier 並且我的 UserId 為空,但是 IOnlineClientManager 自動設置了一個用戶,我在哪里可以設置我的用戶 ID?
它由身份驗證(授權)系統從 cookie 或 JWT 令牌自動設置。
要使用 abp 通知系統,我必須擁有 abp 框架創建的所有公共表嗎? (abpUser、AbpTenant、AbpRoles、權限等)我也可以更改這些表名和列名嗎? 如果我使用外部登錄,我沒有所有這些信息,還需要那些表嗎?
不,你不需要所有的表。 您可以實現自己的INotificationStore
和服務。
零模塊,它使用存儲庫實現存儲,創建和使用公共表。
外部登錄確實會在您的應用程序的租戶中創建一個用戶。 這就是大多數應用程序的工作方式。
當我在執行時設置我的 ID 工作時,在顯示通知后,它沒有從數據庫中刪除,所以每次都顯示,我必須手動刪除嗎?
現在正在工作,在我對我的網站實施身份驗證后,但我現在的問題是我的通知不會過期,每次我發布通知時都會向我的客戶端顯示我在 AbpUserNotifications 表上的通知。
通知何時到期? 我的理解是,當我發布通知時,會在表 AbpUserNotifications 上創建一條記錄,並將它們顯示給客戶端,但是當我發布另一個通知時,會向我的客戶端顯示兩個通知。 我需要手動控制我的通知嗎?
通知不會過期。 您應該將其標記為已讀(類似於 Stack Overflow)或將其刪除。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.