我想实现一个网站,向用户显示有关服务器上发生的某些事件的通知。我的计划是:
这种方法的问题在于,对于大量访问者来说,网站会有很多“未决”的请求。
问题:
我应该认为这是一个问题吗?什么是解决方案?可能我应该实施另一种方法?
请建议,欢迎任何反馈。
答案 0 :(得分:1)
我不知道asp.net处理待处理请求的细节,但你所描述的基本上是长轮询。由于多种原因,这很棘手,包括但不限于:
这是关于asp.net中长轮询的问题:How to do long-polling AJAX requests in ASP.NET MVC?这可能是一个很好的起点。
此外,您可以考虑使用pusher之类的第三方服务来为您处理这些连接,或者(免责声明:我在App Engine上工作)App Engine的渠道API。
答案 1 :(得分:0)
当然,您可以向服务器发出更频繁的请求,这些请求不会消耗服务器资源10分钟?
e.g。每60秒左右发送一次AJAX请求,并返回是否发生了任何事件。缺点是用户可能需要一分钟才能看到有关某些事件的通知,因此如果您需要或多或少立即需要,那就是一个问题。
如果它确实必须是立即的,那么看起来像使用像node.js这样的东西进行“长轮询”可能是一个解决方案,尽管实现起来非常重要。