On 09/19/2012 12:34 PM, Danny Coward
On 9/14/12 5:10 PM, Scott Ferguson
On 09/14/2012 04:44 PM, Danny
I've updated the specification document and API again this
week. I'm still looking for review comments. This week only
some smaller changes, the API tweaks arising from our work on
the reference implementation (see below).
There needs to be a Encoder.BinaryStream and
Encoder.CharacterStream and corresponding Decoders (names can be
different of course.)
I guess that would allow the encoders and decoders to be
stream-based. Something like:
public interface Encoder.CharacterStream<T> extends Encoder
public Reader encode(T object) throws EncodeException;
(and analagous for binary encoder & the Decoders) ?
Yes, but different signature:
public void encode(Writer writer, T object);
public T decode(Reader reader);
public void encode(OutputStream os, T object);
public T decode(InputStream is);
where the streams come from the websocket implementation (not the
That will match up nicely with existing remoting systems, making
them easy to implement. Efficient too, because they can be
implemented without any extra buffering needed for either direction.
Otherwise, this looks like a good draft to me.
The v005 API is in the source repository, under the v005
spec document and javadoc here:-
- added to the security chapter in the specification.
- bolstered up some of the javadoc here and there, esp
- added missing constructors on DecodeException
- add WebSocketError annotation, mirroring other lifecycle
We have had a number of drafts and revisions now, and I think
with one more round of review next week and comment we are
almost ready for Expert Draft review. Many of you will know
all about this stage, but the main point is that it allows us
to get review from a wider audience. Not everything has to be
finished, or complete. But I think we have a lot of our
content in place, and with another round of review, it will be
in good enough shape for new readers to give us good feedback
on what is there.
We have made the RI project public now: its at http://java.net/projects/tyrus/
if you want to take a look. Still a work in progress, but it
is tracking the v003 API.
|| Danny Coward
|| Danny Coward