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 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(Frame original)protected voidcopyHeaders(Frame frame)protected voidcopyHeaders(WebSocketFrame copy)booleanequals(java.lang.Object obj)byte[]getMask()bytegetOpCode()java.nio.ByteBuffergetPayload()Get the payload ByteBuffer.java.lang.StringgetPayloadAsUTF8()intgetPayloadLength()The original payload length (Buffer.remaining())Frame.TypegetType()inthashCode()booleanhasPayload()abstract booleanisControlFrame()abstract booleanisDataFrame()booleanisFin()booleanisLast()Same asFrame.isFin()booleanisMasked()booleanisRsv1()booleanisRsv2()booleanisRsv3()voidreset()WebSocketFramesetFin(boolean fin)FramesetMask(byte[] maskingKey)FramesetMasked(boolean mask)protected WebSocketFramesetOpCode(byte op)WebSocketFramesetPayload(java.nio.ByteBuffer buf)Set the data payload.WebSocketFramesetRsv1(boolean rsv1)WebSocketFramesetRsv2(boolean rsv2)WebSocketFramesetRsv3(boolean rsv3)java.lang.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 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:
equalsin classjava.lang.Object
-
getPayload
public java.nio.ByteBuffer getPayload()
Get the payload ByteBuffer. possible null.- Specified by:
getPayloadin interfaceFrame
-
getPayloadAsUTF8
public java.lang.String getPayloadAsUTF8()
-
getPayloadLength
public int getPayloadLength()
Description copied from interface:FrameThe original payload length (Buffer.remaining())- Specified by:
getPayloadLengthin interfaceFrame- Returns:
- the original payload length (
Buffer.remaining())
-
getType
public Frame.Type getType()
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
hasPayload
public boolean hasPayload()
- Specified by:
hasPayloadin interfaceFrame
-
isControlFrame
public abstract boolean isControlFrame()
-
isDataFrame
public abstract boolean isDataFrame()
-
isLast
public boolean isLast()
Description copied from interface:FrameSame 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:
toStringin classjava.lang.Object
-
-