【发布时间】:2013-01-23 03:23:08
【问题描述】:
在 SignalR 中拥有大量组会对性能产生多大影响?例如,以一个有帖子的社交网络为例,这些帖子上的 cmets 需要通过 SignalR 集线器进行更新。最好为每个帖子创建一个组,然后将评论更新发送到该组,将评论更新发送给所有客户端,然后让客户端代码决定是否更新,或者是还有另一种我想念的方式吗?谢谢!
【问题讨论】:
标签: c# asp.net-mvc signalr signalr-hub
在 SignalR 中拥有大量组会对性能产生多大影响?例如,以一个有帖子的社交网络为例,这些帖子上的 cmets 需要通过 SignalR 集线器进行更新。最好为每个帖子创建一个组,然后将评论更新发送到该组,将评论更新发送给所有客户端,然后让客户端代码决定是否更新,或者是还有另一种我想念的方式吗?谢谢!
【问题讨论】:
标签: c# asp.net-mvc signalr signalr-hub
当您通过 SignalR 向客户端广播消息时,该消息会发送到一个主题,然后该主题会被推送到订阅该主题的一个/多个客户端。每个连接的客户端都有一个主题,每个组都有自己的主题。
发送给一个群组(关联的用户超过 1 个)总是比发送给单个用户更快。但是,组确实会占用内存。单个组的内存远不及整个用户的内存量,但如果创建过多,您会看到损失。
因此,您的问题的答案是,视情况而定。根据您的应用程序的规模和实现,您可以使许多组工作或不工作。
例如,几个人在一个帖子上评论的情况肯定会证明一个组是合理的,而一个人在他们的墙上发布 0 cmets 的情况则不会。
希望这会有所帮助!
【讨论】: