Class WebSocketFrame
- java.lang.Object
-
- org.eclipse.jetty.websocket.common.WebSocketFrame
-
- All Implemented Interfaces:
Frame
- Direct Known Subclasses:
ControlFrame
,DataFrame
public abstract class WebSocketFrame extends java.lang.Object implements 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 ... | +---------------------------------------------------------------+
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.eclipse.jetty.websocket.api.extensions.Frame
Frame.Type
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
WebSocketFrame(byte opcode)
Construct form opcode
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract void
assertValid()
static WebSocketFrame
copy(Frame original)
protected void
copyHeaders(Frame frame)
protected void
copyHeaders(WebSocketFrame copy)
boolean
equals(java.lang.Object obj)
byte[]
getMask()
byte
getOpCode()
java.nio.ByteBuffer
getPayload()
Get the payload ByteBuffer.java.lang.String
getPayloadAsUTF8()
int
getPayloadLength()
The original payload length (Buffer.remaining()
)Frame.Type
getType()
int
hashCode()
boolean
hasPayload()
abstract boolean
isControlFrame()
abstract boolean
isDataFrame()
boolean
isFin()
boolean
isLast()
Same asFrame.isFin()
boolean
isMasked()
boolean
isRsv1()
boolean
isRsv2()
boolean
isRsv3()
void
reset()
WebSocketFrame
setFin(boolean fin)
Frame
setMask(byte[] maskingKey)
Frame
setMasked(boolean mask)
protected WebSocketFrame
setOpCode(byte op)
WebSocketFrame
setPayload(java.nio.ByteBuffer buf)
Set the data payload.WebSocketFrame
setRsv1(boolean rsv1)
WebSocketFrame
setRsv2(boolean rsv2)
WebSocketFrame
setRsv3(boolean rsv3)
java.lang.String
toString()
-
-
-
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 java.nio.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(Frame original)
-
assertValid
public abstract void assertValid()
-
copyHeaders
protected void copyHeaders(Frame frame)
-
copyHeaders
protected void copyHeaders(WebSocketFrame copy)
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equals
in classjava.lang.Object
-
getPayload
public java.nio.ByteBuffer getPayload()
Get the payload ByteBuffer. possible null.- Specified by:
getPayload
in interfaceFrame
-
getPayloadAsUTF8
public java.lang.String getPayloadAsUTF8()
-
getPayloadLength
public int getPayloadLength()
Description copied from interface:Frame
The original payload length (Buffer.remaining()
)- Specified by:
getPayloadLength
in interfaceFrame
- Returns:
- the original payload length (
Buffer.remaining()
)
-
getType
public Frame.Type getType()
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
hasPayload
public boolean hasPayload()
- Specified by:
hasPayload
in interfaceFrame
-
isControlFrame
public abstract boolean isControlFrame()
-
isDataFrame
public abstract boolean isDataFrame()
-
isLast
public boolean isLast()
Description copied from interface:Frame
Same asFrame.isFin()
-
reset
public void reset()
-
setFin
public WebSocketFrame setFin(boolean fin)
-
setMask
public Frame setMask(byte[] maskingKey)
-
setMasked
public Frame setMasked(boolean mask)
-
setOpCode
protected WebSocketFrame setOpCode(byte op)
-
setPayload
public WebSocketFrame setPayload(java.nio.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)
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-