Class WebSocketFrame
- java.lang.Object
-
- org.eclipse.jetty.websocket.common.WebSocketFrame
-
- All Implemented Interfaces:
org.eclipse.jetty.websocket.api.extensions.Frame
- Direct Known Subclasses:
ControlFrame,DataFrame
public abstract class WebSocketFrame extends Object implements org.eclipse.jetty.websocket.api.extensions.Frame
A Base Frame as seen in RFC 6455. Sec 5.20 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-------+-+-------------+-------------------------------+ |F|R|R|R| opcode|M| Payload len | Extended payload length | |I|S|S|S| (4) |A| (7) | (16/64) | |N|V|V|V| |S| | (if payload len==126/127) | | |1|2|3| |K| | | +-+-+-+-+-------+-+-------------+ - - - - - - - - - - - - - - - + | Extended payload length continued, if payload len == 127 | + - - - - - - - - - - - - - - - +-------------------------------+ | |Masking-key, if MASK set to 1 | +-------------------------------+-------------------------------+ | Masking-key (continued) | Payload Data | +-------------------------------- - - - - - - - - - - - - - - - + : Payload Data continued ... : + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + | Payload Data continued ... | +---------------------------------------------------------------+
-
-
Field Summary
Fields Modifier and Type Field Description protected ByteBufferdataThe payload data.protected bytefinRsvOpCombined FIN + RSV1 + RSV2 + RSV3 + OpCode byte.protected byte[]maskprotected booleanmasked
-
Constructor Summary
Constructors Modifier Constructor Description protectedWebSocketFrame(byte opcode)Construct form opcode
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract voidassertValid()static WebSocketFramecopy(org.eclipse.jetty.websocket.api.extensions.Frame original)protected voidcopyHeaders(org.eclipse.jetty.websocket.api.extensions.Frame frame)protected voidcopyHeaders(WebSocketFrame copy)booleanequals(Object obj)byte[]getMask()bytegetOpCode()ByteBuffergetPayload()Get the payload ByteBuffer.StringgetPayloadAsUTF8()intgetPayloadLength()org.eclipse.jetty.websocket.api.extensions.Frame.TypegetType()inthashCode()booleanhasPayload()abstract booleanisControlFrame()abstract booleanisDataFrame()booleanisFin()booleanisLast()booleanisMasked()booleanisRsv1()booleanisRsv2()booleanisRsv3()voidreset()WebSocketFramesetFin(boolean fin)org.eclipse.jetty.websocket.api.extensions.FramesetMask(byte[] maskingKey)org.eclipse.jetty.websocket.api.extensions.FramesetMasked(boolean mask)protected WebSocketFramesetOpCode(byte op)WebSocketFramesetPayload(ByteBuffer buf)Set the data payload.WebSocketFramesetRsv1(boolean rsv1)WebSocketFramesetRsv2(boolean rsv2)WebSocketFramesetRsv3(boolean rsv3)StringtoString()
-
-
-
Field Detail
-
finRsvOp
protected byte finRsvOp
Combined FIN + RSV1 + RSV2 + RSV3 + OpCode byte.1000_0000 (0x80) = fin 0100_0000 (0x40) = rsv1 0010_0000 (0x20) = rsv2 0001_0000 (0x10) = rsv3 0000_1111 (0x0F) = opcode
-
masked
protected boolean masked
-
mask
protected byte[] mask
-
data
protected ByteBuffer data
The payload data.It is assumed to always be in FLUSH mode (ready to read) in this object.
-
-
Method Detail
-
copy
public static WebSocketFrame copy(org.eclipse.jetty.websocket.api.extensions.Frame original)
-
assertValid
public abstract void assertValid()
-
copyHeaders
protected void copyHeaders(org.eclipse.jetty.websocket.api.extensions.Frame frame)
-
copyHeaders
protected void copyHeaders(WebSocketFrame copy)
-
getMask
public byte[] getMask()
- Specified by:
getMaskin interfaceorg.eclipse.jetty.websocket.api.extensions.Frame
-
getOpCode
public final byte getOpCode()
- Specified by:
getOpCodein interfaceorg.eclipse.jetty.websocket.api.extensions.Frame
-
getPayload
public ByteBuffer getPayload()
Get the payload ByteBuffer. possible null.- Specified by:
getPayloadin interfaceorg.eclipse.jetty.websocket.api.extensions.Frame
-
getPayloadAsUTF8
public String getPayloadAsUTF8()
-
getPayloadLength
public int getPayloadLength()
- Specified by:
getPayloadLengthin interfaceorg.eclipse.jetty.websocket.api.extensions.Frame
-
getType
public org.eclipse.jetty.websocket.api.extensions.Frame.Type getType()
- Specified by:
getTypein interfaceorg.eclipse.jetty.websocket.api.extensions.Frame
-
hasPayload
public boolean hasPayload()
- Specified by:
hasPayloadin interfaceorg.eclipse.jetty.websocket.api.extensions.Frame
-
isControlFrame
public abstract boolean isControlFrame()
-
isDataFrame
public abstract boolean isDataFrame()
-
isFin
public boolean isFin()
- Specified by:
isFinin interfaceorg.eclipse.jetty.websocket.api.extensions.Frame
-
isLast
public boolean isLast()
- Specified by:
isLastin interfaceorg.eclipse.jetty.websocket.api.extensions.Frame
-
isMasked
public boolean isMasked()
- Specified by:
isMaskedin interfaceorg.eclipse.jetty.websocket.api.extensions.Frame
-
isRsv1
public boolean isRsv1()
- Specified by:
isRsv1in interfaceorg.eclipse.jetty.websocket.api.extensions.Frame
-
isRsv2
public boolean isRsv2()
- Specified by:
isRsv2in interfaceorg.eclipse.jetty.websocket.api.extensions.Frame
-
isRsv3
public boolean isRsv3()
- Specified by:
isRsv3in interfaceorg.eclipse.jetty.websocket.api.extensions.Frame
-
reset
public void reset()
-
setFin
public WebSocketFrame setFin(boolean fin)
-
setMask
public org.eclipse.jetty.websocket.api.extensions.Frame setMask(byte[] maskingKey)
-
setMasked
public org.eclipse.jetty.websocket.api.extensions.Frame setMasked(boolean mask)
-
setOpCode
protected WebSocketFrame setOpCode(byte op)
-
setPayload
public WebSocketFrame setPayload(ByteBuffer buf)
Set the data payload.The provided buffer will be used as is, no copying of bytes performed.
The provided buffer should be flipped and ready to READ from.
- Parameters:
buf- the bytebuffer to set- Returns:
- the frame itself
-
setRsv1
public WebSocketFrame setRsv1(boolean rsv1)
-
setRsv2
public WebSocketFrame setRsv2(boolean rsv2)
-
setRsv3
public WebSocketFrame setRsv3(boolean rsv3)
-
-