我必须在两个用户(一个租用的人和一个租用的人)之间创建一个Chat。它不需要是实时的,但是使用SignalR我可以做到,但没问题。
每次聊天打开时,我都会将以前的消息存储在数据库中以进行检索。
因此,我只需要在两个用户之间广播一条消息,但是,一个用户可以有多个聊天室,聊天室的人不同(但只有1:1)。
如何在代码中完成该逻辑?我必须使用网上论坛吗?如果是这样,我该如何在1:1聊天中存储“该用户必须向该用户发送消息”的信息,而不是向所有人广播?
我的ChatHub类:
public class ChatHub : Hub
{
private readonly IChatAppService _chatAppService;
public ChatHub(IChatAppService chatAppService)
{
_chatAppService = chatAppService;
}
public string GetConnectionId()
{
return Context.ConnectionId;
}
public async Task SendMessage(ChatAddVM message, string userName)
{
string connectionId = GetConnectionId();
await Clients.Client(connectionId).SendAsync("broadcastMessage", userName, message.Message);
//USED TO SAVE THE MESSAGE ON DB
await _chatAppService.CreateMessage(message);
}
}
答案 0 :(得分:0)
这个问题
我如何存储“此用户必须向其发送消息的信息” 该用户”,并进行1:1聊天,而不是向所有人广播?
我认为您可以将诸如与哪个用户聊天的信息存储到db中。因为您已经在用户与用户之间存储了先前的消息,所以我认为您可以这样做
我也写了一个小型博客here,以便在1:1之间发送消息,所以您可以看看
这个想法是每个用户都有1个连接ID,因此我们需要将该用户的连接ID存储在内存中以从1到1发送消息