Я создаю небольшое приложение для чата с сигнализатором, и когда пользователи нажимают на Присоединиться к серверу, он добавляет этого пользователя в список ConnectedUsers
.
Но как мне удалить конкретного пользователя из списка?и уведомить других клиентов, что пользователь отключен?
ChatHub.cs
static List<User> ConnectedUsers = new List<User>();
public async Task Join(string name) {
var id = Context.ConnectionId;
ConnectedUsers.Add(new User {ID = id, Name = name});
await Clients.Caller.SendAsync("update", "You have connected to the server.");
await Clients.Others.SendAsync("update", name + " has joined the server.");
await Clients.All.SendAsync("update-people", JsonConvert.SerializeObject(ConnectedUsers));
}
public override async Task OnDisconnectedAsync(Exception exception)
{
var _user = ConnectedUsers[Convert.ToInt32(Context.ConnectionId)];
await Clients.All.SendAsync("test", _user);
//ConnectedUsers.Remove();
return base.OnDisconnectedAsync(exception);
}
User.cs
public class User
{
public string ID { get; set; }
public string Name { get; set; }
}
Я ожидаю, что пользователь будет удален из списка ConnectedUsers и уведомит других клиентов об отключении пользователя, но я не могу использовать await SendAsync в переопределении для OnDisconnectedAsync.