parent
806d585717
commit
484ab104ab
|
|
@ -627,7 +627,13 @@ namespace WGShare.API.Controllers.Frontend
|
||||||
|
|
||||||
if (connectionIds.Any())
|
if (connectionIds.Any())
|
||||||
{
|
{
|
||||||
await _hubContext.Clients.Clients(connectionIds).ApplyToSpeak(UId, UserName);
|
var userInfo = RedisHelper.Instance.HGet<ChannelUserInfo>(RedisKeyConstant.SessionManage.GetChannelUserKey(TenantId, roomNum), UId);
|
||||||
|
var userName = UserName;
|
||||||
|
if (userInfo != null)
|
||||||
|
{
|
||||||
|
userName = userInfo.UserName;
|
||||||
|
}
|
||||||
|
await _hubContext.Clients.Clients(connectionIds).ApplyToSpeak(UId, userName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -84,10 +84,7 @@ namespace WGShare.API.Hubs
|
||||||
{
|
{
|
||||||
_logger.LogInformation($@"{DateTime.Now} account:{account} 退出以下频道:{string.Join(',', roomNum)}");
|
_logger.LogInformation($@"{DateTime.Now} account:{account} 退出以下频道:{string.Join(',', roomNum)}");
|
||||||
if (!string.IsNullOrEmpty(roomNum))
|
if (!string.IsNullOrEmpty(roomNum))
|
||||||
{
|
{
|
||||||
// 所有房间移除该用户
|
|
||||||
pipe.HDel(RedisKeyConstant.SessionManage.GetChannelUserKey(tenant, roomNum), uid);
|
|
||||||
|
|
||||||
// 判断是否全员看他,是则移除
|
// 判断是否全员看他,是则移除
|
||||||
var script = $@"local value = redis.call('HGET', KEYS[1], ARGV[1])
|
var script = $@"local value = redis.call('HGET', KEYS[1], ARGV[1])
|
||||||
if value == ARGV[2] or value == ARGV[3] then
|
if value == ARGV[2] or value == ARGV[3] then
|
||||||
|
|
@ -95,6 +92,9 @@ namespace WGShare.API.Hubs
|
||||||
else return -1 end";
|
else return -1 end";
|
||||||
// 执行 eval 命令
|
// 执行 eval 命令
|
||||||
pipe.Eval(script, [RedisKeyConstant.SessionManage.GetChannelShowUserKey(tenant)], roomNum, uid, ssid);
|
pipe.Eval(script, [RedisKeyConstant.SessionManage.GetChannelShowUserKey(tenant)], roomNum, uid, ssid);
|
||||||
|
|
||||||
|
// 房间移除该用户
|
||||||
|
pipe.HDel(RedisKeyConstant.SessionManage.GetChannelUserKey(tenant, roomNum), uid);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 删除用户在线状态
|
// 删除用户在线状态
|
||||||
|
|
@ -103,7 +103,24 @@ namespace WGShare.API.Hubs
|
||||||
// 删除用户已加入频道信息
|
// 删除用户已加入频道信息
|
||||||
pipe.Del(RedisKeyConstant.SessionManage.GetUserJoinChannelKey(uid));
|
pipe.Del(RedisKeyConstant.SessionManage.GetUserJoinChannelKey(uid));
|
||||||
|
|
||||||
pipe.EndPipe();
|
var result = pipe.EndPipe();
|
||||||
|
|
||||||
|
if (!result.IsNullOrEmpty() && result[0].ObjToInt() != -1)
|
||||||
|
{
|
||||||
|
// 如果离开的是全员看ta,则重新设置管理员为全员看ta
|
||||||
|
var users = RedisHelper.Instance.HVals<ChannelUserInfo>(RedisKeyConstant.SessionManage.GetChannelUserKey(tenant, roomNum));
|
||||||
|
var showUsers = users.Where(x => x.RoleId == ((int)RoleEnums.Admin).ToString() || x.IsRoomManager || x.RoleId == ((int)RoleEnums.RoomManager).ToString()).ToList();
|
||||||
|
if (!showUsers.IsNullOrEmpty())
|
||||||
|
{
|
||||||
|
var showUser = showUsers.FirstOrDefault(x => x.EnableCamera == true);
|
||||||
|
if (showUser == null)
|
||||||
|
{
|
||||||
|
showUser = showUsers.FirstOrDefault();
|
||||||
|
}
|
||||||
|
// 通知全员看ta
|
||||||
|
await Clients.Group(roomNum).ShowUser(showUser.UID, showUser.UserName, string.Empty, string.Empty);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(roomNum))
|
if (!string.IsNullOrEmpty(roomNum))
|
||||||
|
|
@ -226,10 +243,16 @@ namespace WGShare.API.Hubs
|
||||||
var result = pipe.EndPipe();
|
var result = pipe.EndPipe();
|
||||||
if (!result.IsNullOrEmpty() && result[0].ObjToInt() != -1)
|
if (!result.IsNullOrEmpty() && result[0].ObjToInt() != -1)
|
||||||
{
|
{
|
||||||
|
// 如果离开的是全员看ta,则重新设置管理员为全员看ta
|
||||||
var users = RedisHelper.Instance.HVals<ChannelUserInfo>(RedisKeyConstant.SessionManage.GetChannelUserKey(tenant, roomNum));
|
var users = RedisHelper.Instance.HVals<ChannelUserInfo>(RedisKeyConstant.SessionManage.GetChannelUserKey(tenant, roomNum));
|
||||||
var showUser = users.FirstOrDefault(x => x.RoleId == ((int)RoleEnums.Admin).ToString() || x.IsRoomManager || x.RoleId == ((int)RoleEnums.RoomManager).ToString());
|
var showUsers = users.Where(x => x.RoleId == ((int)RoleEnums.Admin).ToString() || x.IsRoomManager || x.RoleId == ((int)RoleEnums.RoomManager).ToString()).ToList();
|
||||||
if (showUser != null)
|
if (!showUsers.IsNullOrEmpty())
|
||||||
{
|
{
|
||||||
|
var showUser = showUsers.FirstOrDefault(x => x.EnableCamera == true);
|
||||||
|
if (showUser == null)
|
||||||
|
{
|
||||||
|
showUser = showUsers.FirstOrDefault();
|
||||||
|
}
|
||||||
// 通知全员看ta
|
// 通知全员看ta
|
||||||
await Clients.Group(roomNum).ShowUser(showUser.UID, showUser.UserName, string.Empty, string.Empty);
|
await Clients.Group(roomNum).ShowUser(showUser.UID, showUser.UserName, string.Empty, string.Empty);
|
||||||
}
|
}
|
||||||
|
|
@ -277,7 +300,7 @@ namespace WGShare.API.Hubs
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HubMethodName("sendOper2User")]
|
[HubMethodName("sendOper2User")]
|
||||||
public async Task SendOperationToUser(string uid, string contentString)
|
public async Task SendOperationToUser(string uid, string contentString)
|
||||||
{
|
{
|
||||||
await Clients.User(uid).ReceivedOperation(contentString);
|
await Clients.User(uid).ReceivedOperation(contentString);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -737,6 +737,13 @@
|
||||||
</summary>
|
</summary>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:WGShare.API.Hubs.IMessageClient.ReceivedOperation(System.String)">
|
||||||
|
<summary>
|
||||||
|
客户端接收到消息
|
||||||
|
</summary>
|
||||||
|
<param name="contentString"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="M:WGShare.API.Hubs.SessionManageHub.JoinChannel(System.String,System.Boolean,System.Boolean,System.Boolean)">
|
<member name="M:WGShare.API.Hubs.SessionManageHub.JoinChannel(System.String,System.Boolean,System.Boolean,System.Boolean)">
|
||||||
<summary>
|
<summary>
|
||||||
加入频道
|
加入频道
|
||||||
|
|
@ -764,6 +771,14 @@
|
||||||
</summary>
|
</summary>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:WGShare.API.Hubs.SessionManageHub.SendOperationToUser(System.String,System.String)">
|
||||||
|
<summary>
|
||||||
|
发送客户端指令到指定用户
|
||||||
|
</summary>
|
||||||
|
<param name="uid"></param>
|
||||||
|
<param name="contentString"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="M:WGShare.API.Hubs.SessionManageHub.GetDriversList(System.String)">
|
<member name="M:WGShare.API.Hubs.SessionManageHub.GetDriversList(System.String)">
|
||||||
<summary>
|
<summary>
|
||||||
获取设备列表
|
获取设备列表
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue