在.Net应用程序中实施长轮询的好策略是什么。
这是否意味着使用基于JS setInterval()的方法来轮询服务器以获取可在页面上呈现的更新。我一直认为,在可扩展性方面,这可能是一个挑战,因为它似乎会为Web服务器产生大量额外请求。我已经读过这种类型的功能应该使用非阻塞Web服务器(单线程)NODE.js等来实现... 由于只有一个线程/事件循环,因此请求必须非常轻量级才能及时为多个请求提供服务。 Node.Js可以触发数据库调用吗?
我见过一个在线约会网站,当你有人在你当前登录系统时访问你的个人资料时,你会收到一个fad-in / fade-out弹出窗口的通知。令人印象深刻的是,类似的东西可以很好地适用于大量网站。
假设使用长轮询实现此类通知系统是否合理?基于不断轮询JS?
我在SO网站上看到类似的幕后更新(消息/投票等)这是否也使用了类似的策略?
答案 0 :(得分:8)
scott hanselman撰写的博客文章解释了使用SignalR http://www.hanselman.com/blog/AsynchronousScalableWebApplicationsWithRealtimePersistentLongrunningConnectionsWithSignalR.aspx
答案 1 :(得分:4)
实时网络应用程序已经存在了很长时间了:
轮询的历史从setInterval Technique
到HTML5 WebSockets
。
在这里,您可以使用JavaScript找到Simple Long Polling Example。
http://techoctave.com/c7/posts/60-simple-long-polling-example-with-javascript-and-jquery