SignalR - 连接/用户子组

时间:2013-04-04 18:52:05

标签: c# signalr

我第一次使用signalr同时向用户组广播通信。我有两个地区 - 美国和加拿大以及多个应用程序销售/营销/等。

我希望能够发送消息到:

  • 特定区域内的所有用户
  • 特定应用程序的所有用户,无论区域如何
  • 特定区域中特定应用程序的所有用户

现在我可以向特定群组发送消息 - 基本上可以完成上面的#1和#2。是否可以拥有子组用户 - 或者仅在用户当前分配给两个组时才发送消息?如果没有,是否有实现此功能的最佳实践?

由于 JP

2 个答案:

答案 0 :(得分:3)

不,你无法开箱即用。

然而,您可以尝试查询不符合条件的用户,然后将其包含在"排除连接ID" group.send请求中的参数。

所以例如(sudo代码)

var exclusionIds = myusers.Where(u => u.OnApplication("App1")).Where(x => !x.InRegion("xyz")).Select(z => z.ConnectionId).ToArray();

Clients.Group("App1", exclusionIds).foo();

答案 1 :(得分:2)

SignalR仅提供可帮助您维护简单组的功能。您必须在代码中处理子组逻辑。您可以为不同的组创建“集合”,并根据需要将消息发送到这些组/集的交集。您可以查看SignalR中的聊天示例,以了解有关如何在应用程序中管理组的更多信息。