|
|
@@ -47,6 +47,7 @@ public class OnlineUserHub : Hub<IOnlineUserHub>
|
|
|
var account = httpContext.User.FindFirst(ClaimConst.Account)?.Value;
|
|
|
var realName = httpContext.User.FindFirst(ClaimConst.RealName)?.Value;
|
|
|
var tenantId = (httpContext.User.FindFirst(ClaimConst.TenantId)?.Value).ToLong();
|
|
|
+ var device = httpContext.GetClientDeviceInfo().Trim();
|
|
|
|
|
|
if (userId < 0 || string.IsNullOrWhiteSpace(account)) return;
|
|
|
var user = new SysOnlineUser
|
|
|
@@ -66,12 +67,11 @@ public class OnlineUserHub : Hub<IOnlineUserHub>
|
|
|
// 是否开启单用户登录
|
|
|
if (await _sysConfigService.GetConfigValue<bool>(ConfigConst.SysSingleLogin))
|
|
|
{
|
|
|
- _sysCacheService.Set(CacheConst.KeyUserOnline + user.UserId, user);
|
|
|
+ _sysCacheService.HashAdd(CacheConst.KeyUserOnline, "" + user.UserId, user);
|
|
|
}
|
|
|
- else
|
|
|
+ else // 非单用户登录则绑定用户设备信息
|
|
|
{
|
|
|
- var device = httpContext.GetClientDeviceInfo().Trim();
|
|
|
- _sysCacheService.Set(CacheConst.KeyUserOnline + user.UserId + device, user);
|
|
|
+ _sysCacheService.HashAdd(CacheConst.KeyUserOnline, user.UserId + device, user);
|
|
|
}
|
|
|
|
|
|
// 以租户Id进行分组
|
|
|
@@ -102,17 +102,19 @@ public class OnlineUserHub : Hub<IOnlineUserHub>
|
|
|
var user = await _sysOnlineUerRep.AsQueryable().Filter("", true).FirstAsync(u => u.ConnectionId == Context.ConnectionId);
|
|
|
if (user == null) return;
|
|
|
|
|
|
- await _sysOnlineUerRep.DeleteAsync(u => u.Id == user.Id);
|
|
|
+ await _sysOnlineUerRep.DeleteByIdAsync(user.Id);
|
|
|
|
|
|
// 是否开启单用户登录
|
|
|
if (await _sysConfigService.GetConfigValue<bool>(ConfigConst.SysSingleLogin))
|
|
|
{
|
|
|
- _sysCacheService.Remove(CacheConst.KeyUserOnline + user.UserId);
|
|
|
+ _sysCacheService.HashDel<SysOnlineUser>(CacheConst.KeyUserOnline, "" + user.UserId);
|
|
|
+ // _sysCacheService.Remove(CacheConst.KeyUserOnline + user.UserId);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
var device = httpContext.GetClientDeviceInfo().Trim();
|
|
|
- _sysCacheService.Remove(CacheConst.KeyUserOnline + user.UserId + device);
|
|
|
+ _sysCacheService.HashDel<SysOnlineUser>(CacheConst.KeyUserOnline, user.UserId + device);
|
|
|
+ // _sysCacheService.Remove(CacheConst.KeyUserOnline + user.UserId + device);
|
|
|
}
|
|
|
|
|
|
// 通知当前组用户变动
|