我正在尝试使用 ServiceStack 构建一个基本的“谁在线”功能。
会话缓存定义如下:
var cacheClient = new MemoryCacheClient();
container.Register<ICacheClient>(cacheClient);
有没有办法通过 AuthUserSession 对象中的 UserAuthId 和 LastModified 字段过滤会话集合?
我正在尝试使用 ServiceStack 构建一个基本的“谁在线”功能。
会话缓存定义如下:
var cacheClient = new MemoryCacheClient();
container.Register<ICacheClient>(cacheClient);
有没有办法通过 AuthUserSession 对象中的 UserAuthId 和 LastModified 字段过滤会话集合?
对于任何感兴趣的人,这是我最终的做法:
var cache = ((Service) (authService)).Cache;
var online = cache.Get<Dictionary<string, CustomUserSession>>("users_online") ?? new Dictionary<string, CustomUserSession>();
if(!online.ContainsKey("usr_" + base.UserAuthId))
{
online.Add("usr_" + base.UserAuthId, this);
cache.Set("users_online", online);
}
此代码应该在您的 CustomUserSession 类中,该类派生自 AuthUserSession