Been away a bit, so sorry for the delay. Thanks for all the information, this is incredibly useful.
I'm going to start with doing one of the..well, starter projects and see how well I handle that. If that goes smooth I'll investigating how the protocol is currently working (code-wise) and see if I can see the steps needed to convert to the new model. This could take awhile. Thanks again for the pointers, Thomas On 11 July 2011 10:48, David Hearnden <hearn...@google.com> wrote: > Hi Thomas, > > Instructions are at: http://www.waveprotocol.org/code > > A good starting point would be to check out the code, and build and run WIAB > in development mode (ant compile-gwt-dev). In the debug log in the web > client, you'll see all the messages being transferred over the websocket. > The messages are JSON, and their structure is defined by some protos, and > enveloped as (see WaveWebSocketClient$MessageWrapper): > { sequenceNumber: <unused I think>, messageType: <message class name>, > message: <object> } > > WaveWebSocketClient essentially defines the client side of the protocol, and > it's very trivial. Over a bidirectional stream (websocket), the client > sends an open request (ProtocolOpenRequest), some number of submit requests > (ProtocolSubmitRequest), and then closes the web socket. After the open > request, the client receives a constant stream of ProtocolWaveletUpdates, > containing either wavelet snapshots or wavelet deltas, interleaved with > ProtocolSubmitResponses, which contain the success/failure of the client's > own submits. Details about those particular messages can be found in > waveclient-rpc.proto, but the previous sentence above covers almost the > entire protocol, and it's expressed quite simply in the code. The bit I > left out is the authentication messages, which I never looked into, but the > code looks pretty straightforward. > > The problems with the protocol are: > * it does not support opening at particular versions, which is required for > diff-on-open > * it bundles state and deltas over the same channel, rather than a RESTful > state service plus a streaming delta service, > * a few others that have escaped my memory (something about closing > connections? or losing access because of a participant change?). Listing > the diff between the old and new protocol behaviour should produce a > complete list. > > Hope that helps, > > -Dave > > On Sun, Jul 10, 2011 at 8:22 AM, Thomas Wrobel <darkfl...@gmail.com> wrote: > >> oh, quick question; wheres the current wiab repository? >> >> ~~~~~~ >> Reviews of anything, by anyone; >> www.rateoholic.co.uk >> Please try out my new site and give feedback :) >> >> >> >> On 9 July 2011 23:11, Thomas Wrobel <darkfl...@gmail.com> wrote: >> > Guess I could have a go at those - they seem client based stuff so I >> > should be able to handle it. >> > I'll download a new checkout now and have a look. >> > >> > However, Can I have confirmation of the state of that proposed c/s >> > protocol however as Joseph didn't know? >> > >> > At he moment Im a guy that doesn't know how it works at the moment, >> > not knowing what exactly should be implemented/changed, and unsure if >> > he has the skills needed to do it :p >> > >> > Perhaps I'm wrong, or being pessimistic, but at the moment I I feel >> > like I could fix 10-20 client side bugs or feature requests in the >> > time it will take me to understand how the wiab client and server >> > should communicate with eachother. >> > >> > -Thomas >> > >> > >> > >> > On 9 July 2011 19:40, Yuri Z <vega...@gmail.com> wrote: >> >> A great way to familiarize yourself with WIAB is by comepleting >> >> StarterProject< >> https://issues.apache.org/jira/secure/IssueNavigator.jspa?reset=true&jqlQuery=labels+%3D+StarterProject >> > >> >> . >> >> >> >> 2011/7/9 Joseph Gentle <jose...@gmail.com> >> >> >> >>> On Sat, Jul 9, 2011 at 8:19 AM, Thomas Wrobel <darkfl...@gmail.com> >> wrote: >> >>> >> As far as I know, the client-server protocol for wave in a box is >> >>> >> pretty stable at this point. Its documented here: >> >>> >> >> >>> >> http://www.waveprotocol.org/protocol/design-proposals/clientserver-protocol >> >>> >> ... Though that documentation is probably out of date. >> >>> > >> >>> > It was my understanding it wasnt yet implemented? >> >>> > There was an older thread here about it; >> >>> > >> >>> > >> >>> >> http://mail-archives.apache.org/mod_mbox/incubator-wave-dev/201105.mbox/%3cbanlktimi_a6zkpsrxqqvhwysrfhh35-...@mail.gmail.com%3e >> >>> > >> >>> > David Hearnden there said; >> >>> > >> >>> > "I would strongly encourage not building too much on the current >> >>> protocol, >> >>> > since it has a number of known limitations. The new protocol is >> simpler >> >>> and >> >>> > achieves a better separation of functionality. " >> >>> > >> >>> > Which put me off doing a anything with the code as-is. >> >>> > >> >>> > Has this changed now? >> >>> >> >>> I don't know - I haven't been working with the wave in a box code for >> >>> the last 6 months or so. >> >>> >> >>> >> If you care about the client/server API enough to dig through the >> >>> >> code, writing up some proper documentation describing what you find >> >>> >> would be great. >> >>> > >> >>> > Id be happy to - but that might be overestimating my skills somewhat. >> >>> > My java skills uptill now have purely been GWT or Android based >> stuff. >> >>> > Haven't ever done any server stuff, and the wiab code is a rather >> >>> > steep learning curve every time I try getting to grips with bits of >> >>> > it. >> >>> >> >>> I worked with the wave / wave in a box code for about half a year, and >> >>> I still feel like that whenever I dive in there. Despite referring to >> >>> (& editing) those protobuf files maybe a dozen times, it still took me >> >>> 5-10 minutes to find them again. You can still get work done with that >> >>> feeling, but it is slow going. >> >>> >> >>> If you want a good client/server protocol for wiab, familiarise >> >>> yourself with the WIAB code and implement those changes Hearnden was >> >>> talking about. >> >>> >> >>> -J >> >>> >> >>> > -Thomas >> >>> > >> >>> >> >> >> > >> >