Reputation:
After seeing the Google Wave demos, I thought of incorporating "real-time" capabilities into my web application, where one user will be able to see text another user is typing in as it happens...
Besides the soft real-time capabilities built into .NET based on how the framework handles threads...
Is there anything else I would need? Is there any pattern or architectural reference for real-time web apps out there? Something I should read?
Thanks!
Upvotes: 2
Views: 1157
Reputation: 733
Since its a Web app, I'd suggest you to try etherpad!
There is a .NET Client example on HTTP API and a page on other examples
Upvotes: 0
Reputation: 44632
Check out WebSync. It's a .NET comet server that should do exactly what you need.
Upvotes: 4
Reputation: 289
We have developed a operational transformation engine, the technology backend that powers Google Wave, and did simultaneous drawing and text editing demos available using DuplexChannel on Silverlight. You can download it from http://www.corvalius.com/blog/index.php/technology/announcing-the-availability-of-the-beweevee-sdk-september-ctp/ .
We plan to release the SDK (that it is in preview right now) completely free for non-commercial/academic purposes; so it may be of your interest to take a look. At least you will be able to find a very simple example of how to do full duplex for collaborative apps in source (small WCF server included).
Upvotes: 0
Reputation: 171
Comet, although not always appropriate, in a sense it is "polling", although it only polls once at the beginning of a potentially long'ish job; the server then keeps the HTTP connection open until it is ready to respond.
As defined by Wikipedia: "In web development, Comet is a neologism to describe a web application model in which a long-held HTTP request allows a web server to push data to a browser, without the browser explicitly requesting it."
Found this to be useful for a job that may take the server five minutes to finish, instead of polling every x seconds, the client makes the request and the server essentially says "hang on..." and does it the work and returns the data when completed.
There are several libraries that support this type of Ajax implementation including Dojo (dojo.com) and ExtJS 3.0 (extjs.com).
Upvotes: 0
Reputation: 7297
Ajax,SUP and XMPP will help you in this regard. Also study how Twitter Search and Friendfeed works.
Upvotes: 0
Reputation: 22443
You could try to use a full duplex channel with Silverlight. Similar to the Java applet idea except in .Net.
Upvotes: 3
Reputation: 28386
Short of using a Java applet or similar, your HTML/JavaScript front-end will need to poll the server for relevant events and changes.
On the backend, there are a multitude of ways to implement a distributed event queue or similar to share between individual processes serving requests.
Upvotes: 1