如果需要,强制所有连接的客户端在下一个服

时间:2015-04-13 17:51:42

标签: c# asp.net vb.net

在我的大多数单页网站上,我的菜单从数据库中获取一次数据,而不是回发,以保持服务器负载。

菜单中的项目可以由网站管理员的管理员动态添加到菜单中。 但这会使每个连接的客户端都有一个过时的菜单。

我想知道是否:

  • 当管理员这么说时,您能够强制所有客户端以某种方式更新下一个服务器请求吗?

我查看了asp.net SignalR,但我不认为这是这样做的方式,因为这在服务器端听起来很重,但我可能是错的?

1 个答案:

答案 0 :(得分:0)

我被要求发布这个作为答案。我可能会选择SignalR。

  • 它是由一个团队维护的,所以它往往比你或我投入的东西更好,更普遍地工作
  • 它针对性能进行了优化,并且它的功能非常好
  • 它非常具有可扩展性,如果你自己写一些东西会很麻烦。
  • 无论现在的状态如何,它都会变得更好。他们设置了代码合同,并且他们将继续无限期地改进它背后的引擎,因此理论上你的性能和覆盖范围,如果你更新,就会越来越好。他们的工作就是尽可能地做到最好,所以没有必要重新发明一些你不能偶尔看的东西。

如果你真的 担心负载,那么肯定会有更少的负载密集型方法。

例如,您可以编写一个API并每隔半小时用AJAX调用它,检查更改。编写它是非常简单的,但你仍然需要等待半小时才能“推下”数据,你可能会发现让所有客户端立即调用的负载实际上就像不管怎么说。

您选择的所有内容都将在具有可用功能和服务器负载之间进行权衡。但实际上,SignalR非常擅长它的功能。除非你必须非常小心,否则我不会从负载的角度来担心它。如果你运行的是那些小的公差,那么你可能还需要重新思考。

众所周知,Web服务器具有使用的峰值和谷值 - 白天与夜晚,工作日与周末,雨天与阳光,等等。你想确保你已经足够容纳那些用户,听起来如果SignalR会让你离你太近,你可能没有足够的。

我不打算告诉你如何经营你的业务,如果这是一个很大的问题,我会三思而后行。