jetty.project/jetty-websocket
Lachlan 04b1a77b6d
Issue #4152 - CompressExtension autoFragment with respect to maxFrameSize (#4260)
* rework ByteAccumulator to avoid unnecessary data copies
* use ByteAccumulator instead of BAOS for ws compression
* outgoing autoFragment working with permessage-deflate
* ByteAccumulator now uses fixed maxFrameSize and no ByteBufferPool
* rework deflate code and introduce TransformingFlusher
* use transforming flusher for outgoing compression
* general clean up CompressExtension and subclasses
* remove forward incoming method
* use flusher to fragment for the decompressing of incoming frames
* fix broken tests
* updates to TransformingFlusher
* tests for CompressExtension with no payload
* ByteAccumulator uses the BufferPool for the final buffer
* remove increased maxFrameSize from autobahn tests as we now autoFragment
* add test for gzip bomb
* fix typo
* use Throwable failure instead of canEnqueue
* changes to TransformingFlusher from review
* remove per frame deflate extension
* remove accumulation of data to maxFrameSize in CompressExtension
* race between finished being set and callback being completed
* cleanup of transforming flusher
* fix issues with the TransformingFlushers
* add internal parameters for deflate and inflate BufferSize
* missing licence header
* wip
* don't use same extension config instances in negotiated extensions
* changes to TransformingFlusher from review
* fix internal extensions requested by client
* javadoc update
* javadoc and cleanup from review
* remove ByteAccumulator
* fix module-info
* null out current on callback completion
* remove override of succeeded and failed

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2019-11-19 12:34:58 +11:00
..
javax-websocket-client Updating to version 10.0.0-SNAPSHOT 2019-10-03 12:05:26 -05:00
javax-websocket-common Issue #4124 - autobahn tests for jetty, javax websocket APIs (#4147) 2019-11-07 11:06:14 +11:00
javax-websocket-server Issue #2578 - Listener behavior cleanup (Jetty 10.0.x) (#3966) 2019-11-13 11:04:38 +11:00
javax-websocket-tests Issue #4124 - autobahn tests for jetty, javax websocket APIs (#4147) 2019-11-07 11:06:14 +11:00
jetty-websocket-api Issue #4124 - autobahn tests for jetty, javax websocket APIs (#4147) 2019-11-07 11:06:14 +11:00
jetty-websocket-client Issue #4124 - autobahn tests for jetty, javax websocket APIs (#4147) 2019-11-07 11:06:14 +11:00
jetty-websocket-common Issue #4124 - autobahn tests for jetty, javax websocket APIs (#4147) 2019-11-07 11:06:14 +11:00
jetty-websocket-server Issue #2578 - Listener behavior cleanup (Jetty 10.0.x) (#3966) 2019-11-13 11:04:38 +11:00
jetty-websocket-tests Merge branch 'jetty-9.4.x' into jetty-10.0.x 2019-11-13 10:58:48 -06:00
websocket-core Issue #4152 - CompressExtension autoFragment with respect to maxFrameSize (#4260) 2019-11-19 12:34:58 +11:00
websocket-servlet Issue #4124 - autobahn tests for jetty, javax websocket APIs (#4147) 2019-11-07 11:06:14 +11:00
README.TXT renamed README.txt to README.TXT and updated contents 2013-08-29 00:32:36 +10:00
pom.xml Updating to version 9.4.23-SNAPSHOT 2019-10-22 09:19:41 -05:00

README.TXT


This is the jetty websocket module that provides a websocket server and the skeleton of a websocket client.

By default websockets is included with a jetty release (with these classes either being in the jetty-websocket jar or in
an aggregate jar (see below).


In order to accept a websocket connection, the websocket handshake request is first routed to normal HTTP request
handling, which must respond with a 101 response and an instance of WebSocketConnection set as the
"org.eclipse.jetty.io.Connection" request attribute.   The accepting behaviour is provided by WebSocketHandler or the
WebSocketServlet class, both of which delegate to the WebSocketFactory class.

A TestServer and TestClient class are available, and can be run either directly from an IDE (if jetty source is
imported), or from the command line with


  java -cp jetty-aggregate/jetty-all/target/jetty-all-7.x.y.jar:jetty-distribution/target/distribution/lib/servlet-api-2.5.jar
  org.eclipse.jetty.websocket.TestServer  --help 

  java -cp jetty-aggregate/jetty-all/target/jetty-all-7.x.y.jar:jetty-distribution/target/distribution/lib/servlet-api-2.5.jar
  org.eclipse.jetty.websocket.TestClient --help


Without a protocol specified, the client will just send/receive websocket PING/PONG packets.    A protocol can be specified for testing other
aspects of websocket.  Specifically the server and client understand the following protocols:

    org.ietf.websocket.test-echo
        Websocket messages are sent by the client and the server will echo every frame.

    org.ietf.websocket.test-echo-broadcast
        Websocket messages are sent by the client and the server will echo every frame to every connection.

    org.ietf.websocket.test-echo-assemble
        Websocket messages are sent by the client and the server will echo assembled messages as a single frame.

    org.ietf.websocket.test-echo-fragment
        Websocket messages are sent and the server will echo each message fragmented into 2 frames.