public async Task JoinChannel(string channelName, string username) { await RemoveFromAllChannelsAsync(); ChannelUser channelUser = new ChannelUser { Username = username, ChannelName = channelName, ConnectionId = Context.ConnectionId }; await Groups.AddToGroupAsync(Context.ConnectionId, channelUser.ChannelName); if (!_channelUserMap.TryGetValue(channelName, out List <ChannelUser> list)) { list = new List <ChannelUser>(); _channelUserMap.Add(channelName, list); } else { _channelUserMap.TryGetValue(channelName, out List <ChannelUser> userList); //_channelUserMap.userList.Add(channelUser); } list.Add(channelUser); await Clients.Groups(channelName).JoinedChannel(channelUser.Username); }
//public async Task RemovedUserFromChannel(string username) //{ //} public async Task SendMessageToChannel(string message) { ChannelUser channelUser = GetUserFromConnection(Context.ConnectionId); if (channelUser != null) { await Clients.Group(channelUser.ChannelName).ReceivedMessage(channelUser.Username, message); } }