views:

39

answers:

2

I would like to create a web page which would allow multiple users to work together on a page, Imagine a web based editor that allowed to users to change the documents as an example of this type of feature.

How would more experienced programmers go about implementing this as i really cant seem to formulate any way to even begin going about this task. Would there be any programming librarys that make implementing this feature easier or is it just too complex to even think about?

I am creating this webapp primarily using GWT and SmartGWT if that helps.

Thanks for any input you may have.

+1  A: 

There is indeed a cometd-like library for gwt - http://code.google.com/p/gwteventservice/

Wiki: 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. Comet is an umbrella term for multiple techniques for achieving this interaction. All these methods rely on features included by default in browsers, such as JavaScript, rather than on non-default plugins.

In practice: In normal way client can receive resources by request->responce. It is no possible to send data directly to client without request. With comet you can hold realtime connection between client and server and exchange data in realtime.

Check out: docs.google.com. They are using comet.

kospiotr
Comet is also available in the rocket-gwt project: http://code.google.com/p/rocket-gwt/wiki/Comet
Jason Hall
Yes thats right. But this two are just implementation of I would say techique. Use any library but be sure it has good support and documentation.
kospiotr
The [comet + gwt](http://stackoverflow.com/questions/tagged/gwt+comet) tags are also worth checking out.
Igor Klimer
A: 

Etherpad.com is a service that used to do this. It has been since bought by Google, and the code released as open-source. You can see several links on the etherpad.com page for the source download and related information.

Evgeny