C# 试图避免服务器上的通信量

C# 试图避免服务器上的通信量,c#,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-4,c#-4.0,C#,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc 4,C# 4.0,我使用的是C#ASP.NET MVC4 Razor 我在ASP.NET MVC Razor视图中有一个显示用户记录的网格。有没有办法在网格中显示新用户,而不在每1分钟后向服务器发送异步请求 我在谷歌上搜索了很多。现在,我终于在这里发布了查询,以获取此解决方案的任何线索,从而避免服务器上的流量。由于此页面将至少对20000个用户可见,所以您可以使用发布/订阅模式。例如,可以使用redis服务器来实现这一点 在软件体系结构中,发布-订阅是一种消息传递模式 消息的发送者(称为发布者)不编程 直接发送给

我使用的是C#ASP.NET MVC4 Razor

我在ASP.NET MVC Razor视图中有一个显示用户记录的网格。有没有办法在网格中显示新用户,而不在每1分钟后向服务器发送异步请求


我在谷歌上搜索了很多。现在,我终于在这里发布了查询,以获取此解决方案的任何线索,从而避免服务器上的流量。由于此页面将至少对20000个用户可见,所以您可以使用发布/订阅模式。例如,可以使用redis服务器来实现这一点

在软件体系结构中,发布-订阅是一种消息传递模式 消息的发送者(称为发布者)不编程 直接发送给特定接收者的消息,称为 订户。相反,已发布的消息被特征化为 类,而不知道可能有什么订户(如果有的话)。 类似地,订阅者表示对一个或多个类感兴趣,并且 只接收感兴趣的消息,而不知道是什么, 如果有的话,有出版商

请看一看

这样,客户机第一次从服务器请求数据时,将订阅服务器以进行任何更新。一旦任何更新到达,服务器将把更新推送到已订阅的客户端,而不需要客户端向服务器发出任何其他请求


至于实施细节,请看一看。

@Christos方法是正确的!,为了给ASP.NET解决方案添加更多信息,我建议它使用Signal,它允许您实现简单的服务器/客户端通信和跨浏览器(它有几个多边形填充,如果不能使用web套接字,它将使用服务器发送的事件等),最好的部分是您不需要担心这种实现

一旦您的客户端连接到signalR服务器,您就可以在每次需要向网格添加新项目时通知他们


我希望有帮助

您将如何在各个web浏览器和web服务器之间实现发布/订阅模式?这不是一个正确的想法吗?我知道这种模式,但我从来没有机会实施它,我认为这应该适合这种情况。如果没有,请让我知道删除该帖子。我认为这个想法很好,但我没有在浏览器中实际实现它的经验。我认为Web套接字可以为这一点提供一个很好的基础,但我个人还没有与它们合作过。发现这一点:也许可以探索实现选项,并更新您的答案,使其更具体地反映OP的情况。