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.ra...@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