Class PerMessageDeflateExtension
- All Implemented Interfaces:
Closeable
,AutoCloseable
,Extension
,IncomingFrames
,OutgoingFrames
,DemandChain
Attempts to follow Compression Extensions for WebSocket
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
Used to clean up any resources after connection close.void
demand()
static boolean
endsWithTail
(ByteBuffer buf) getName()
TheSec-WebSocket-Extensions
name for this extension.void
init
(ExtensionConfig config, WebSocketComponents components) boolean
Used to indicate that the extension makes use of the RSV1 bit of the base websocket framing.protected void
nextIncomingFrame
(Frame frame, Callback callback) protected void
nextOutgoingFrame
(Frame frame, Callback callback, boolean batch) void
Process the incoming frame.void
void
void
A frame, and optional callback, intended for the network layer.void
setNextDemand
(DemandChain nextDemand) toString()
Methods inherited from class org.eclipse.jetty.websocket.core.AbstractExtension
getByteBufferPool, getConfig, getConfiguration, getCoreSession, getDeflaterPool, getInflaterPool, getNextIncoming, getNextOutgoing, isRsv2User, isRsv3User, setCoreSession, setNextIncomingFrames, setNextOutgoingFrames
-
Constructor Details
-
PerMessageDeflateExtension
public PerMessageDeflateExtension()
-
-
Method Details
-
getName
Description copied from interface:Extension
TheSec-WebSocket-Extensions
name for this extension.Also known as the
extension-token
per Section 9.1. Negotiating Extensions.- Specified by:
getName
in interfaceExtension
- Overrides:
getName
in classAbstractExtension
- Returns:
- the name of the extension
-
isRsv1User
public boolean isRsv1User()Description copied from class:AbstractExtension
Used to indicate that the extension makes use of the RSV1 bit of the base websocket framing.This is used to adjust validation during parsing, as well as a checkpoint against 2 or more extensions all simultaneously claiming ownership of RSV1.
- Specified by:
isRsv1User
in interfaceExtension
- Overrides:
isRsv1User
in classAbstractExtension
- Returns:
- true if extension uses RSV1 for its own purposes.
-
sendFrame
Description copied from interface:OutgoingFrames
A frame, and optional callback, intended for the network layer.Note: the frame can undergo many transformations in the various layers and extensions present in the implementation.
If you are implementing a mutation, you are obliged to handle the incoming Callback appropriately.
- Specified by:
sendFrame
in interfaceOutgoingFrames
- Overrides:
sendFrame
in classAbstractExtension
- Parameters:
frame
- the frame to eventually write to the network layer.callback
- the callback to notify when the frame is written.batch
- the batch mode requested by the sender.
-
onFrame
Description copied from interface:IncomingFrames
Process the incoming frame.
Note: if you need to hang onto any information from the frame, be sure to copy it, as the information contained in the Frame will be released and/or reused by the implementation.
Failure of the callback will propagate the failure back to the
CoreSession
to fail the connection and attempt to send a closeFrame
if one has not been sent.- Specified by:
onFrame
in interfaceIncomingFrames
- Overrides:
onFrame
in classAbstractExtension
- Parameters:
frame
- the frame to process.callback
- the read completion.
-
init
- Specified by:
init
in interfaceExtension
- Overrides:
init
in classAbstractExtension
-
close
public void close()Description copied from interface:Extension
Used to clean up any resources after connection close. -
endsWithTail
-
getDeflater
-
getInflater
-
releaseInflater
public void releaseInflater() -
releaseDeflater
public void releaseDeflater() -
toString
- Overrides:
toString
in classAbstractExtension
-
nextIncomingFrame
- Overrides:
nextIncomingFrame
in classAbstractExtension
-
nextOutgoingFrame
- Overrides:
nextOutgoingFrame
in classAbstractExtension
-
setNextDemand
- Specified by:
setNextDemand
in interfaceDemandChain
-
demand
public void demand()- Specified by:
demand
in interfaceDemandChain
-