我第一次使用信号器同时向用户组广播通信。我有两个地区 - 美国和加拿大以及多个应用程序销售/营销/等。
我希望能够将消息发送到:
- 特定区域的所有用户
- 特定应用程序的所有用户,不分地区
- 特定区域中特定应用程序的所有用户
现在我可以向特定的组发送消息——基本上完成了上面的#1 和#2。是否可以有子用户组 - 或者仅在当前将用户分配到两个组时才发送消息?如果没有,是否有实现此功能的最佳实践?
谢谢太平绅士
不,您无法开箱即用。
但是,您可以尝试查询不符合您条件的用户,然后将它们包含在 group.send 请求的“排除连接 ID”参数中。
例如(sudo 代码)
var exclusionIds = myusers.Where(u => u.OnApplication("App1")).Where(x => !x.InRegion("xyz")).Select(z => z.ConnectionId).ToArray();
Clients.Group("App1", exclusionIds).foo();
SignalR 仅提供帮助您维护简单组的功能。您必须在代码中处理子组逻辑。您可以为不同的组创建“集”,并根据需要向这些组/集的交集发送消息。您可以查看 SignalR 中的聊天示例,以了解有关如何在应用程序中管理组的更多信息。