Files
2026-10-08 10:43:59 +08:00

23 lines
841 B
C#

using F9WebAiTest.Api.Hubs;
using F9WebAiTest.Application.Services;
using MediatR;
using Microsoft.AspNetCore.SignalR;
namespace F9WebAiTest.Api.Services;
/// <summary>
/// 业务状态变更事件的 SignalR 推送处理器。
/// 业务服务发布 BusinessChangedEvent 后,推送给所有在线客户端,
/// 各端监听 "BusinessChanged" 后刷新已打开的相关页面,实现多端实时同步。
/// </summary>
public class BusinessChangedEventHandler : INotificationHandler<BusinessChangedEvent>
{
private readonly IHubContext<NotificationHub> _hubContext;
public BusinessChangedEventHandler(IHubContext<NotificationHub> hubContext)
=> _hubContext = hubContext;
public Task Handle(BusinessChangedEvent e, CancellationToken ct)
=> _hubContext.Clients.All.SendAsync("BusinessChanged", e, ct);
}