2016-03-04 120 views
1

在ServiceStack应用程序有没有办法来确定客户端已经断开非正常?我想获取在线用户列表,但ServiceStack非正常客户端断开

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

只会得到有效会话,直到到期或客户端注销(这并不反映他是否是onlline与否)是有效的。

回答

1

如果你指的是服务器事件订阅,他们的寿命是完全无关的用户会话。服务器事件订阅仅表示与服务器事件/事件流的长期HTTP连接,该连接可能来自或可能不来自经过身份验证的用户。

的方法,找出active connected users is to call /event-subscribers

里面ServiceStack,对服务器事件订阅提供的所有信息是accessible through the IServerEvents依赖,例如要找出用户的所有活动订阅,您可以调用GetSubscriptionInfosByUserId()

+0

'ServerEvents.GetAllSubscriptionsDetails();'仍然无法获取订阅已断开连接的客户端 – HardLuck

+0

@HardLuck它会自动删除。 – mythz

+0

是的,但我一直在寻找一种方式来刷新服务器的情况下,在订阅列表时,客户端没有通知他的断线 – HardLuck