问题
What's the best way to push info from a server to a web client? I know it's possible to setup sockets with Silverlight and Flash but I want to stay way from those two technologies.
Gmail seems to do a great job of polling the servers for updated emails and even their chat programs work great (all working in my web browser). Any ideas on the best way to do something like this but using asp.net?
Edit: If I have to poll, i'd like to poll the server every 2 or 3 seconds. So I'm not sure how to do this without bringing the web server to it's knees under heavy usage.
回答1:
Since you mention ASP.NET
you should be using SignalR
.
See my other answer here: Instant notifications like Facebook
回答2:
The push technique you are looking for is called Comet. See this article for some pointers.
回答3:
I would create a script callable Web Service and use JQuery.
Here's a good guide on using JQuery to call an ASP.NET (ASMX) web service:
http://encosia.com/2008/03/27/using-jquery-to-consume-aspnet-json-web-services/
Now, you would just poll this web service at whatever interval makes sense for your application.
Also, the problem with ASP.NET AJAX is it's a bit top heavy. By using JQuery, you can call your web service from a regular ASP.NET web form, from a View in MVC, or actually using any other web technology (classic ASP, PHP, whatever) all from the client side using just, in my view, the best javascript framework around. :)
回答4:
Try out WebSync, a scalable comet server built for .NET/IIS. It'll let you push data nicely from the server, and integrates super easily with ASP.NET projects (a couple web.config entries is all it takes).
回答5:
PokeIn is a reverse ajax library for ASP.NET & Mono. It has various capabilities like .NET to JSON vice versa. You may download sample projects from here
回答6:
To do that, use ASP.NET 3.0/3.5 or if you are using earlier versions, use ASP.NET Ajax. However both examples listed by you, are using Ajax to pull information, not push it.
来源:https://stackoverflow.com/questions/471780/asp-net-http-server-push-to-client