using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; using Volo.Abp.AspNetCore.SignalR; using Yi.Framework.Bbs.Domain.Shared.Model; namespace Yi.Framework.Bbs.Domain.SignalRHubs { [HubRoute("/hub/bbs-notice")] [Authorize] public class BbsNoticeHub : AbpHub { /// /// hub连接与用户id的映射关系存储 /// public static ConcurrentDictionary HubUserModels = new ConcurrentDictionary(); /// /// 连接添加用户信息 /// /// public override Task OnConnectedAsync() { var hubUser = new HubUserModel(Context.ConnectionId, CurrentUser.Id!.Value); HubUserModels.TryAdd(CurrentUser.Id.Value.ToString(), hubUser); return Task.CompletedTask; } /// /// 断开连接,去除用户连接信息 /// /// /// public override Task OnDisconnectedAsync(Exception exception) { HubUserModels.TryRemove(CurrentUser.Id.Value.ToString(), out _); return Task.CompletedTask; } } }