2013-04-04 80 views
0

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

我希望能够将邮件发送到:在

  • 所有用户在特定区域
  • 所有用户的特定应用程序的不分地域
  • 所有用户的特定应用程序的特定区域

现在我可以将消息发送到特定的组 - 实质上完成上面的#1和#2。是否可以有子组用户 - 或者只有当用户当前分配给两个组时才发送消息?如果没有,是否有实现此功能的最佳做法?

感谢 JP

回答

3

不,你不能开箱即用。

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

因此,例如,(命令代码)

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

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

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