我在我正在构建的原型中使用 SignalR。我需要向多个客户端广播消息,但是对于哪些客户端将获得哪些消息有一些逻辑,这足够复杂,可以排除使用组的可能性。相反,我基本上是在检查每个连接的客户端——如果它们适用,它们会被添加到 List<> 中。然后我使用以下方式发送消息:
var clients = DetermineClients(msg);
foreach (var client in clients)
client.Send(msg);
当然,如果我能够使用组,我可以这样做...:
var group = DetermineGroup(msg);
group.Send(msg);
...因为组的“发送”方法似乎基本上做同样的事情 - 枚举组中的客户端并在这些客户端上调用“发送”。这是执行此操作的“正确”方法吗?或者有什么方法可以即时创建一个临时组?团体或单一客户的“动态”类型让我很难确定我是否做对了。如果在幕后有一些魔法可以优化对多个客户端的广播,我显然更愿意使用它!
任何意见,将不胜感激。如果您需要更多信息,请告诉我。