长时间轮询实时消息/更新

时间:2012-03-31 06:05:35

标签: c# javascript asp.net

在.Net应用程序中实施长轮询的好策略是什么。

这是否意味着使用基于JS setInterval()的方法来轮询服务器以获取可在页面上呈现的更新。我一直认为,在可扩展性方面,这可能是一个挑战,因为它似乎会为Web服务器产生大量额外请求。我已经读过这种类型的功能应该使用非阻塞Web服务器(单线程)NODE.js等来实现... 由于只有一个线程/事件循环,因此请求必须非常轻量级才能及时为多个请求提供服务。 Node.Js可以触发数据库调用吗?

我见过一个在线约会网站,当你有人在你当前登录系统时访问你的个人资料时,你会收到一个fad-in / fade-out弹出窗口的通知。令人印象深刻的是,类似的东西可以很好地适用于大量网站。

假设使用长轮询实现此类通知系统是否合理?基于不断轮询JS?

我在SO网站上看到类似的幕后更新(消息/投票等)这是否也使用了类似的策略?

2 个答案:

答案 0 :(得分:8)

SignalRpokein是两个不错的选择。

scott hanselman撰写的博客文章解释了使用SignalR http://www.hanselman.com/blog/AsynchronousScalableWebApplicationsWithRealtimePersistentLongrunningConnectionsWithSignalR.aspx

答案 1 :(得分:4)

实时网络应用程序已经存在了很长时间了: 轮询的历史从setInterval TechniqueHTML5 WebSockets

在这里,您可以使用JavaScript找到Simple Long Polling Example。

http://techoctave.com/c7/posts/60-simple-long-polling-example-with-javascript-and-jquery