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