WebSocket client API

Pavel Rappo pavel.rappo at oracle.com
Tue Oct 6 10:27:28 UTC 2015


Hi,

Here's an update on the WebSocket API. This iteration tries to address all
issues have been discussed so far:

   webrev: http://cr.openjdk.java.net/~prappo/8087113/webrev.01/
   javadoc: http://cr.openjdk.java.net/~prappo/8087113/javadoc.01/

Main differences from the previous version:

   * Extension support has been postponed and remains an open issue [1]
   * WebSocket.Builder now also accepts HttpRequest.Builder (for providing
     custom opening handshake headers)
   * Outgoing is gone, instead a user can send incomplete Binary and Text
     messages with ByteBuffers and CharSequences directly
   * Incoming is gone, instead WebSocket.Builder provides a handler
     assigning method per event (message or error)
   * Async methods take a custom context object and a potentially reusable
     completion handler (NIO2 style)
   * The API is now j.u.c.Flow-friendly

-------------------------------------------------------------------------------
[1] https://bugs.openjdk.java.net/browse/JDK-8138949;
    That doesn't mean the default implementation won't support
    'permessage-deflate'.

-Pavel

> On 31 Aug 2015, at 15:30, Pavel Rappo <pavel.rappo at oracle.com> wrote:
> 
> Hi,
> 
> I would appreciate if you help to review a WebSocket client API proposed for
> JDK 9. This work is a part of JEP-110 [1] and has started its public path with
> HTTP client review in March this year [2].
> 
> Proposed WebSocket API is relatively small and focuses on convenient exchange of
> data in a fully asynchronous fashion. API consists of 6 types located in the
> java.net package [3]:
> 
> 1. WebSocket
> 2. WebSocket.Builder
> 3. WebSocket.Incoming
> 4. WebSocket.Incoming.Chunks
> 5. WebSocket.Outgoing
> 6. WebSocketException
> 
> Starting point is a class description for java.net.WebSocket. Along with
> in-javadoc examples, several API test samples are provided in the webrev [4] and
> named test/java/net/WebSocket/Example%.java. They are only for informational
> purposes and won't be included in the final version of the API.
> 
> I would appreciate any feedback on this API. Thanks.
> 
> -------------------------------------------------------------------------------
> [1] http://openjdk.java.net/jeps/110
> [2] http://mail.openjdk.java.net/pipermail/net-dev/2015-March/008932.html
> [3] http://cr.openjdk.java.net/~prappo/8087113/javadoc.00/
> [4] http://cr.openjdk.java.net/~prappo/8087113/webrev.00/
> 
> -Pavel



More information about the net-dev mailing list