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