【问题标题】:Performance issues with Groups in SignalR?SignalR 中组的性能问题?
【发布时间】:2013-01-23 03:23:08
【问题描述】:

在 SignalR 中拥有大量组会对性能产生多大影响?例如,以一个有帖子的社交网络为例,这些帖子上的 cmets 需要通过 SignalR 集线器进行更新。最好为每个帖子创建一个组,然后将评论更新发送到该组,将评论更新发送给所有客户端,然后让客户端代码决定是否更新,或者是还有另一种我想念的方式吗?谢谢!

【问题讨论】:

    标签: c# asp.net-mvc signalr signalr-hub


    【解决方案1】:

    当您通过 SignalR 向客户端广播消息时,该消息会发送到一个主题,然后该主题会被推送到订阅该主题的一个/多个客户端。每个连接的客户端都有一个主题,每个组都有自己的主题。

    发送给一个群组(关联的用户超过 1 个)总是比发送给单个用户更快。但是,组确实会占用内存。单个组的内存远不及整个用户的内存量,但如果创建过多,您会看到损失。

    因此,您的问题的答案是,视情况而定。根据您的应用程序的规模和实现,您可以使许多组工作或不工作。

    例如,几个人在一个帖子上评论的情况肯定会证明一个组是合理的,而一个人在他们的墙上发布 0 cmets 的情况则不会。

    希望这会有所帮助!

    【讨论】:

    • 谢谢,这解决了我关于它如何实现组的一些问题,但只是想知道,还有其他方法吗?还是基本上只是组和特定用户之间的选择?
    • 另一个核心部分是信号,信号映射到主题。因此,将集线器视为一个信号,每个连接的客户端的主题都与该信号相关联。从性能的角度来看,我不会担心这一点,它只是在优化 Clients.All 之类的性能方面发挥作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-28
    • 1970-01-01
    • 2012-12-18
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多