【发布时间】:2023-04-04 11:29:01
【问题描述】:
我必须在两个用户(一个被雇佣的人和一个雇佣者)之间创建一个聊天。它不需要是实时的,但使用 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);
}
}
【问题讨论】:
标签: asp.net-core signalr