SignalR:没有持久通知的服务器广播
Posted
技术标签:
【中文标题】SignalR:没有持久通知的服务器广播【英文标题】:SignalR: Server broadcast without persisting notifications 【发布时间】:2018-10-30 04:45:33 【问题描述】:我想通知在线用户一个新的聊天室已经创建。我不需要在离线用户上线后通知他们。
我查看了AbpNotifications
,但这似乎会持续通知并在用户上线后通知用户。我只想通知当前在线的用户。
我查看了 SignalR 集成,但找不到服务器发起消息的方法。例如,我可能希望ApplicationService.ChatRoom.Create
方法启动消息。
我确实找到了有关如何让 SignalR(在 ABP 之外)发起消息的文档:https://docs.microsoft.com/en-us/aspnet/signalr/overview/getting-started/tutorial-server-broadcast-with-signalr#server
【问题讨论】:
【参考方案1】:注入并使用IRealTimeNotifier
。
private async Task SendRealTimeNotificationsAsync(string message, UserIdentifier[] users)
var data = new MessageNotificationData(message);
var notification = new TenantNotification Data = data ;
var userNotifications = users.Select(user => new UserNotification
TenantId = user.TenantId,
UserId = user.UserId,
Notification = notification
);
await RealTimeNotifier.SendNotificationsAsync(userNotifications.ToArray());
更多信息:https://aspnetboilerplate.com/Pages/Documents/Notification-System#real-time-notifications
【讨论】:
以上是关于SignalR:没有持久通知的服务器广播的主要内容,如果未能解决你的问题,请参考以下文章