用于客户端断开的ServiceStack事件

时间:2016-04-20 10:51:07

标签: c# .net servicestack

我正在试验ServiceStack的服务器事件功能,并希望制作一种“在线用户”测试应用。我的想法是,每当新用户加入或离开时,我都希望更新连接到“用户”频道的每个用户。问题是我无法找到一种方法来检测订阅/用户何时离开/断开连接。

1 个答案:

答案 0 :(得分:0)

当用户加入离开更新其ServerEvent订阅时,会触发ServerEventsClient.OnCommand回调。

您还可以随时从频道中获取所有活跃订阅者的列表:

var sseClient = new ServerEventsClient(...);

var response = sseClient.ServiceClient.Get(new GetEventSubscribers { 
    Channels = sseClient.Channels
});

将返回包含订阅者公开信息的无类型Dictionary<string,string>列表。

我刚刚在this commit中为GetChannelSubscribers()添加了ServerEventsClient的类型化API,现在可以从v4.0.57 on MyGet获取,它提供了一个Typed API来获取订阅var channelSubscribers = sseClient.GetChannelSubscribers(); 的所有用户渠道,例如:

{{1}}