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
> >>> >
> >>>
> >>
> >
>

Reply via email to