using IM_API.Domain.Events; using IM_API.Dtos; using IM_API.Hubs; using IM_API.VOs.Group; using MassTransit; using Microsoft.AspNetCore.SignalR; namespace IM_API.Application.EventHandlers.GroupInviteHandler { public class GroupInviteSignalRHandler : IConsumer { private readonly IHubContext _hub; public GroupInviteSignalRHandler(IHubContext hub) { _hub = hub; } public async Task Consume(ConsumeContext context) { var @event = context.Message; var list = @event.Ids.Select(id => id.ToString()).ToArray(); var msg = new HubResponse("Event", new GroupInviteVo { GroupId = @event.GroupId, UserId = @event.UserId }); await _hub.Clients.Users(list).SendAsync("ReceiveMessage", msg); } } }