ServiceStack 非正常客户端断开连接

ServiceStack ungraceful client disconnect

在 ServiceStack 应用程序中,有什么方法可以确定客户端已不正常地断开连接?我想获取在线用户的列表,但是

var sessionPattern = IdUtils.CreateUrn<IAuthSession>("");
var sessionKeys = Cache.GetKeysStartingWith(sessionPattern).ToList();
var activeSessions = Cache.GetAll<IAuthSession>(sessionKeys).Values;

只会获得有效的会话,这些会话在过期或客户端注销之前有效(这并不反映他是否在线)。

如果您指的是服务器事件订阅,则它们的生命周期与用户会话完全无关。服务器事件订阅仅表示与服务器事件 /event-stream 的长期 HTTP 连接,它可能来自也可能不是来自经过身份验证的用户。

查找方法active connected users is to call /event-subscribers.

在 ServiceStack 内部,服务器事件订阅上的所有可用信息都是 accessible through the IServerEvents 依赖项,例如要找出用户的所有活动订阅,您可以调用 GetSubscriptionInfosByUserId()