From 9a7c0c61d029e93ea0294b00339ed9d6f13d04ee Mon Sep 17 00:00:00 2001 From: youngq Date: Tue, 21 Jan 2025 14:52:47 +0800 Subject: [PATCH] 111 --- WGShare.API/Controllers/Frontend/RoomController.cs | 12 +++++++++--- WGShare.API/Hubs/SessionManageHub.cs | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/WGShare.API/Controllers/Frontend/RoomController.cs b/WGShare.API/Controllers/Frontend/RoomController.cs index ac3b409..6d9fdba 100644 --- a/WGShare.API/Controllers/Frontend/RoomController.cs +++ b/WGShare.API/Controllers/Frontend/RoomController.cs @@ -110,12 +110,12 @@ namespace WGShare.API.Controllers.Frontend var users = RedisHelper.Instance.HVals(RedisKeyConstant.SessionManage.GetChannelUserKey(TenantId, inputDTO.RoomNum)); var showUser = users.FirstOrDefault(x => x.RoleId == ((int)RoleEnums.Admin).ToString() || x.IsRoomManager || x.RoleId == ((int)RoleEnums.RoomManager).ToString()); if (showUser != null) - { + { RedisHelper.Instance.HSet(RedisKeyConstant.SessionManage.GetChannelShowUserKey(TenantId), inputDTO.RoomNum, showUser.UID); await _hubContext.Clients.Group(inputDTO.RoomNum).ShowUser(showUser.UID, showUser.UserName, string.Empty, string.Empty); } else - { + { RedisHelper.Instance.HSet(RedisKeyConstant.SessionManage.GetChannelShowUserKey(TenantId), inputDTO.RoomNum, 0); } } @@ -124,7 +124,7 @@ namespace WGShare.API.Controllers.Frontend // 取消显示用户,设置显示当前操作的管理员 RedisHelper.Instance.HSet(RedisKeyConstant.SessionManage.GetChannelShowUserKey(TenantId), inputDTO.RoomNum, UId); await _hubContext.Clients.Group(inputDTO.RoomNum).ShowUser(UId, UserName, string.Empty, string.Empty); - } + } } await _hubContext.Clients.Group(inputDTO.RoomNum).ManagerRefresh(user, UId); @@ -396,6 +396,12 @@ namespace WGShare.API.Controllers.Frontend [HttpPost("show-user")] public async Task SetShowUser([FromQuery] string roomNum, [FromQuery] string uid, [FromQuery] string uname) { + + if (RedisHelper.Instance.HGet(RedisKeyConstant.SessionManage.GetChannelShowUserKey(TenantId), roomNum) == uid) + { + // 如果已经是全员观看他了,则不做处理 + return; + } // 设置房间全员观看用户 RedisHelper.Instance.HSet(RedisKeyConstant.SessionManage.GetChannelShowUserKey(TenantId), roomNum, uid); diff --git a/WGShare.API/Hubs/SessionManageHub.cs b/WGShare.API/Hubs/SessionManageHub.cs index 1ef4bca..90d1b49 100644 --- a/WGShare.API/Hubs/SessionManageHub.cs +++ b/WGShare.API/Hubs/SessionManageHub.cs @@ -45,7 +45,7 @@ namespace WGShare.API.Hubs Console.WriteLine($"{DateTime.Now}连接成功 当前租户:{tenant} account:{account} uid:{uid} connectId:{Context.ConnectionId}"); - await ClearUserChannel(uid, tenant, account, ssid, false); + //await ClearUserChannel(uid, tenant, account, ssid, false); // 存储在线信息 RedisHelper.Instance.HSet(RedisKeyConstant.SessionManage.GetOnlineUserKey(tenant), uid, Context.ConnectionId); }