试图避免服务器上的流量

时间:2015-09-07 18:27:31

标签: c# asp.net-mvc asp.net-mvc-3 asp.net-mvc-4 c#-4.0

我正在使用C#ASP.NET MVC 4 Razor

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

我在Google上搜索了很多。现在,最后我在这里发布查询以获得此解决方案的任何线索,以避免服务器上的流量。由于此页面至少可以看到20,000个用户

2 个答案:

答案 0 :(得分:3)

您可以使用发布/订阅者模式。这可以使用例如redis服务器来完成。

  

在软件架构中,发布 - 订阅是一种消息传递模式   消息发送者,称为发布者,不编程   消息直接发送到特定的接收器,称为   订户。相反,已发布的消息被表征为   课程,不知道可能有什么用户(如果有的话)。   同样,订阅者表达对一个或多个类的兴趣,并且   只接收感兴趣的消息,而不知道什么,   如果有的话,那里有出版商。

请查看here

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

关于实施细节,请查看here

答案 1 :(得分:3)

@Christos方法是正确的!只是为ASP.NET解决方案添加更多关于它的信息我会使用SignalR,它允许你实现简单的服务器/客户端通信,它是跨浏览器(它有几个polyfill如果它不能使用Web套接字,它将使用服务器发送的事件,等等),最好的部分是你不必担心该实现。

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

http://www.asp.net/signalr/overview/getting-started/tutorial-server-broadcast-with-signalr

我希望它有所帮助!