将信息从服务器推送到 Web 客户端的最佳方式是什么?我知道可以使用 Silverlight 和 Flash 设置套接字,但我想远离这两种技术。
Gmail 似乎在轮询服务器以获取更新的电子邮件方面做得很好,甚至他们的聊天程序也运行良好(全部在我的网络浏览器中运行)。关于使用 asp.net 做这样的事情的最佳方法的任何想法?
编辑:如果我必须轮询,我想每 2 或 3 秒轮询一次服务器。因此,我不确定如何在不使 Web 服务器在大量使用的情况下瘫痪的情况下做到这一点。
将信息从服务器推送到 Web 客户端的最佳方式是什么?我知道可以使用 Silverlight 和 Flash 设置套接字,但我想远离这两种技术。
Gmail 似乎在轮询服务器以获取更新的电子邮件方面做得很好,甚至他们的聊天程序也运行良好(全部在我的网络浏览器中运行)。关于使用 asp.net 做这样的事情的最佳方法的任何想法?
编辑:如果我必须轮询,我想每 2 或 3 秒轮询一次服务器。因此,我不确定如何在不使 Web 服务器在大量使用的情况下瘫痪的情况下做到这一点。
既然你提到ASP.NET
你应该使用SignalR
. 在此处查看我的其他答案:Facebook 等即时通知
您正在寻找的推送技术称为 Comet。有关一些提示,请参阅本文。
我会创建一个脚本可调用的 Web 服务并使用JQuery。
这是使用 JQuery 调用 ASP.NET (ASMX) Web 服务的一个很好的指南:
http://encosia.com/2008/03/27/using-jquery-to-consume-aspnet-json-web-services/
现在,您只需在对您的应用程序有意义的任何时间间隔轮询此 Web 服务。
此外,ASP.NET AJAX 的问题是它有点头重脚轻。通过使用 JQuery,您可以从常规的 ASP.NET Web 表单、MVC 中的视图或实际使用任何其他 Web 技术(经典 ASP、PHP 等)从客户端调用您的 Web 服务。查看,最好的 javascript 框架。:)
试用WebSync,一个为 .NET/IIS 构建的可扩展彗星服务器。它可以让你很好地从服务器推送数据,并超级容易地与 ASP.NET 项目集成(只需几个 web.config 条目)。
为此,请使用 ASP.NET 3.0/3.5,或者如果您使用的是早期版本,请使用ASP.NET Ajax。但是,您列出的两个示例都使用 Ajax 来提取信息,而不是推送信息。