You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by Mark Thomas <ma...@apache.org> on 2012/12/12 22:23:44 UTC

WebSocket progress report

This is just a short note to provide some idea of where I have got to
and where I am going with the WebSocket implementation.

So far, I have an implementation for incoming messages to server side
endpoints (for endpoints defined programmatically and via annotations)
that is built on top of Servlet 3.1 HTTP upgrade and works for at least
some use cases. I have not checked all the edge cases and I expect there
are places it will break.

The next step is to implement support for outgoing messages from server
endpoints. Once that is in place, I will update the examples to use the
new implementation and fix any issues that identifies. After that, I
intend to run the Autobahn test suite and fix any issues that identifies.

Once I have something that passes the Autobahn test suite my next set of
priorities will be to clean up the code. By that I mean:
- consistent formatting
- complete the Javadoc
- consistent naming conventions
- i18n
- refactor to reduce duplication
- reduce visibility to the minimum require to function correctly

The next block of work will be to complete the WebSocket client
implementation and then use that to generate unit tests. My aim then
will be to go through the API and get as close as practical to 100% code
coverage with the unit tests.

Alongside all of this will be updating the implementation for changes to
the draft specification which may well mean going back several steps.

Finally, I want to do some performance testing. Some of this may get
pulled forward if the Autobahn test suite finds something truly awful
(given my approach to date of focussing on getting something that works
this is quite likely).

Help in any form is always appreciated.

Mark

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Re: WebSocket progress report

Posted by Mark Thomas <ma...@apache.org>.
On 21/12/2012 23:13, Mark Thomas wrote:
>> After that, I
>> intend to run the Autobahn test suite and fix any issues that identifies.

Passes for BIO and NIO.
~30 failures for APR/native

> Next step will be to look at making the buffer sizes configurable to
> address the failures above before moving on to the rest of the test suite.

This wasn't necessary. It is implemented and may offer some performance
optimisations but is not required for handling of large messages
(providing the WebSocket Endpoint will accept partial messages).

>> Once I have something that passes the Autobahn test suite my next set of
>> priorities will be to clean up the code. By that I mean:
>> - consistent formatting
>> - complete the Javadoc
>> - consistent naming conventions
>> - i18n
>> - refactor to reduce duplication
>> - reduce visibility to the minimum require to function correctly
>>
>> The next block of work will be to complete the WebSocket client
>> implementation and then use that to generate unit tests. My aim then
>> will be to go through the API and get as close as practical to 100% code
>> coverage with the unit tests.
>>
>> Alongside all of this will be updating the implementation for changes to
>> the draft specification which may well mean going back several steps.

The API is up to date with the latest draft (v11). One reason for
concentrating on the different connectors right now is that the less of
the API that is implemented, the easier it is to keep up with the changes.

>> Finally, I want to do some performance testing. Some of this may get
>> pulled forward if the Autobahn test suite finds something truly awful
>> (given my approach to date of focussing on getting something that works
>> this is quite likely).

No obvious performance issues so far. I'm sure, however, there will be
scope for improvement.

>> Help in any form is always appreciated.

Mark


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Re: WebSocket progress report

Posted by Mark Thomas <ma...@apache.org>.
On 12/12/2012 21:23, Mark Thomas wrote:

> The next step is to implement support for outgoing messages from server
> endpoints.
Done.

> Once that is in place, I will update the examples to use the
> new implementation and fix any issues that identifies.
Done.

> After that, I
> intend to run the Autobahn test suite and fix any issues that identifies.

Pass
  1.1.1-1.1.5, 1.2.1-1.2.5
Fail
  1.1.6-1.1.8, 1.2.6-1.1.8 (all because server side buffer is too small)
Not tested
  2 onwards

As expected, the Autobahn test suite has already identified numerous
issues with the initial implementation as it is far less forgiving than
browsers - particularly about ensuring connections are closed cleanly.

Next step will be to look at making the buffer sizes configurable to
address the failures above before moving on to the rest of the test suite.

> Once I have something that passes the Autobahn test suite my next set of
> priorities will be to clean up the code. By that I mean:
> - consistent formatting
> - complete the Javadoc
> - consistent naming conventions
> - i18n
> - refactor to reduce duplication
> - reduce visibility to the minimum require to function correctly
> 
> The next block of work will be to complete the WebSocket client
> implementation and then use that to generate unit tests. My aim then
> will be to go through the API and get as close as practical to 100% code
> coverage with the unit tests.
> 
> Alongside all of this will be updating the implementation for changes to
> the draft specification which may well mean going back several steps.
> 
> Finally, I want to do some performance testing. Some of this may get
> pulled forward if the Autobahn test suite finds something truly awful
> (given my approach to date of focussing on getting something that works
> this is quite likely).
> 
> Help in any form is always appreciated.
> 
> Mark
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: dev-help@tomcat.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org