首页 文章

SignalR - 发送给多个客户端(不是组)

提问于
浏览
1

我在我正在建造的原型中使用SignalR . 我需要向许多客户端广播消息,但是有一些逻辑说明哪些客户端将获得哪个消息足够复杂以排除使用组 . 相反,我基本上检查每个连接的客户端 - 如果它们适用,它们被添加到List <> . 然后我使用以下方式发送消息:

var clients = DetermineClients(msg);
foreach (var client in clients)
    client.Send(msg);

当然,如果我能够使用群组,我可以做...:

var group = DetermineGroup(msg);
group.Send(msg);

...因为组的“发送”方法似乎基本上做同样的事情 - 枚举组中的客户端并在那些上调用“发送” . 这是“正确”的方法吗?或者有什么方法可以动态创建一个临时组?群体或单一客户的“动态”类型使我很难确定我是否正确行事 . 如果在场景背后有一些魔法可以优化广播到一些客户端,我显然宁愿使用它!

任何意见,将不胜感激 . 如果您需要更多信息,请告诉我 .

1 回答

  • 2

    如果您只是尝试根据复杂的条件向多个不同的客户发送相同的消息,那么您最好的选择是拥有一个包含所有客户的组,然后查询以确定哪些客户符合您的条件 DO NOT . 如果连接ID列表不符合您的条件,您可以执行以下操作:

    Clients.Group("myGroupThatHasAllMyClients",myExcludedConnectionIds).bar();
    

相关问题