Files
IM/backend/IM_API/Application/EventHandlers/SignalREventHandler.cs
T
nanxun 77744015de 前端:
1、更新界面图标
2、修改消息缓存逻辑
3、新增清空未读消息数
后端:
1、修复不同时区导致的时间显示问题
2、新增清空未读消息数接口
2026-01-21 18:48:05 +08:00

42 lines
1.4 KiB
C#

using AutoMapper;
using IM_API.Application.Interfaces;
using IM_API.Domain.Events;
using IM_API.Dtos;
using IM_API.Hubs;
using IM_API.Models;
using IM_API.Tools;
using Microsoft.AspNetCore.SignalR;
namespace IM_API.Application.EventHandlers
{
public class SignalREventHandler : IEventHandler<MessageCreatedEvent>
{
private readonly IHubContext<ChatHub> _hub;
private readonly IMapper _mapper;
public SignalREventHandler(IHubContext<ChatHub> hub, IMapper mapper)
{
_hub = hub;
_mapper = mapper;
}
public async Task Handle(MessageCreatedEvent @event)
{
if(@event.ChatType == Models.ChatType.PRIVATE)
{
MessageBaseDto messageBaseDto = new MessageBaseDto
{
MsgId = @event.MessageId.ToString(),
ChatType = @event.ChatType.ToString(),
Content = @event.MessageContent,
GroupMemberId = null,
ReceiverId = @event.MsgRecipientId,
SenderId = @event.MsgSenderId,
TimeStamp = @event.MessageCreated,
Type = @event.MessageMsgType.ToString()
};
await _hub.Clients.Users(@event.MsgRecipientId.ToString()).SendAsync("ReceiveMessage", messageBaseDto);
}
}
}
}