1、优化消息排序逻辑 2、新增加载历史消息 3、修复已知问题 后端: 1、优化消息排序逻辑 2、增加用户信息缓存机制 3、修改日期类型为DateTimeOffset改善时区信息丢失问题 3、修复了已知问题 数据库: 1、新增SequenceId字段用于消息排序 2、新增ClientMsgId字段用于客户端消息回执
38 lines
1.3 KiB
C#
38 lines
1.3 KiB
C#
using IM_API.Domain.Events;
|
|
using IM_API.Dtos;
|
|
using IM_API.Hubs;
|
|
using IM_API.Interface.Services;
|
|
using IM_API.Models;
|
|
using MassTransit;
|
|
using Microsoft.AspNetCore.SignalR;
|
|
|
|
namespace IM_API.Application.EventHandlers.FriendAddHandler
|
|
{
|
|
public class FriendAddSignalRHandler : IConsumer<FriendAddEvent>
|
|
{
|
|
private readonly IHubContext<ChatHub> _chathub;
|
|
public FriendAddSignalRHandler(IHubContext<ChatHub> chathub)
|
|
{
|
|
_chathub = chathub;
|
|
}
|
|
|
|
public async Task Consume(ConsumeContext<FriendAddEvent> context)
|
|
{
|
|
var @event = context.Message;
|
|
var usersList = new List<string> {
|
|
@event.RequestUserId.ToString(), @event.ResponseUserId.ToString()
|
|
};
|
|
var res = new HubResponse<MessageBaseDto>("Event", new MessageBaseDto()
|
|
{
|
|
ChatType = ChatType.PRIVATE,
|
|
Content = "您有新的好友关系已添加",
|
|
//MsgId = @event.EventId.ToString(),
|
|
ReceiverId = @event.ResponseUserId,
|
|
SenderId = @event.RequestUserId,
|
|
TimeStamp = DateTime.Now
|
|
});
|
|
await _chathub.Clients.Users(usersList).SendAsync("ReceiveMessage", res);
|
|
}
|
|
}
|
|
}
|