Я пишу приложение для чата. Я использую Angular 6
и .Net Core 3.1.
Я прочитал много документов, но все еще не понимаю, в чем ошибка.
My Hub Class
public class ChatHub : Hub
{
private static List<ConnectedUser> _connectedUsers = new List<ConnectedUser>();
public override Task OnConnectedAsync()
{
var username = Context.GetHttpContext().Request.Query["username"];
var status = _connectedUsers.FirstOrDefault(x => x.Username == username);
if (status == null)
{
_connectedUsers.Add(new ConnectedUser
{
ConnId = Context.ConnectionId,
Username = username
});
}
return base.OnConnectedAsync();
}
...
У меня есть список, в котором хранится информация connection id
пользователей, подключенных к моему Hub Class
. Когда пользователи подключаются, я добавляю их в этот список.
Я работаю в своем Private Chat Function
ниже.
public void PrivateChat(string toUser,string fromUser,string message)
{
_connectedUsers.ForEach(val =>
{
if(val.Username == toUser)
Clients.User(val.ConnId).SendAsync("receiveMessage", message,fromUser);
});
}
Однако я не могу вернуться к тому пользователю, которого хочу.
Вы используете его в Angular
так
this._hubConnection.on('receiveMessage', (message,fromUser) => {
console.log(message , "+" , fromUser);
}
);