Package org.java_websocket.drafts
Class Draft
- java.lang.Object
-
- org.java_websocket.drafts.Draft
-
- Direct Known Subclasses:
Draft_6455
public abstract class Draft extends Object
Base class for everything of a websocket specification which is not common such as the way the handshake is read or frames are transfered.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
Draft.CloseHandshakeType
Enum which represents type of handshake is required for a closestatic class
Draft.HandshakeState
Enum which represents the states a handshake may be in
-
Field Summary
Fields Modifier and Type Field Description protected Framedata.Opcode
continuousFrameType
static int
INITIAL_FAMESIZE
static int
MAX_FAME_SIZE
protected WebSocket.Role
role
In some cases the handshake will be parsed different depending on whether
-
Constructor Summary
Constructors Constructor Description Draft()
-
Method Summary
-
-
-
Field Detail
-
MAX_FAME_SIZE
public static int MAX_FAME_SIZE
-
INITIAL_FAMESIZE
public static int INITIAL_FAMESIZE
-
role
protected WebSocket.Role role
In some cases the handshake will be parsed different depending on whether
-
continuousFrameType
protected Framedata.Opcode continuousFrameType
-
-
Method Detail
-
readLine
public static ByteBuffer readLine(ByteBuffer buf)
-
readStringLine
public static String readStringLine(ByteBuffer buf)
-
translateHandshakeHttp
public static HandshakeBuilder translateHandshakeHttp(ByteBuffer buf, WebSocket.Role role) throws InvalidHandshakeException, IncompleteHandshakeException
-
acceptHandshakeAsClient
public abstract Draft.HandshakeState acceptHandshakeAsClient(ClientHandshake request, ServerHandshake response) throws InvalidHandshakeException
- Throws:
InvalidHandshakeException
-
acceptHandshakeAsServer
public abstract Draft.HandshakeState acceptHandshakeAsServer(ClientHandshake handshakedata) throws InvalidHandshakeException
- Throws:
InvalidHandshakeException
-
basicAccept
protected boolean basicAccept(Handshakedata handshakedata)
-
createBinaryFrame
public abstract ByteBuffer createBinaryFrame(Framedata framedata)
-
createFrames
public abstract List<Framedata> createFrames(ByteBuffer binary, boolean mask)
-
processFrame
public abstract void processFrame(WebSocketImpl webSocketImpl, Framedata frame) throws InvalidDataException
Handle the frame specific to the draft- Parameters:
webSocketImpl
- the websocketimpl used for this draftframe
- the frame which is supposed to be handled- Throws:
InvalidDataException
- will be thrown on invalid data
-
continuousFrame
public List<Framedata> continuousFrame(Framedata.Opcode op, ByteBuffer buffer, boolean fin)
-
reset
public abstract void reset()
-
createHandshake
public List<ByteBuffer> createHandshake(Handshakedata handshakedata, WebSocket.Role ownrole)
-
createHandshake
public List<ByteBuffer> createHandshake(Handshakedata handshakedata, WebSocket.Role ownrole, boolean withcontent)
-
postProcessHandshakeRequestAsClient
public abstract ClientHandshakeBuilder postProcessHandshakeRequestAsClient(ClientHandshakeBuilder request) throws InvalidHandshakeException
- Throws:
InvalidHandshakeException
-
postProcessHandshakeResponseAsServer
public abstract HandshakeBuilder postProcessHandshakeResponseAsServer(ClientHandshake request, ServerHandshakeBuilder response) throws InvalidHandshakeException
- Throws:
InvalidHandshakeException
-
translateFrame
public abstract List<Framedata> translateFrame(ByteBuffer buffer) throws InvalidDataException
- Throws:
InvalidDataException
-
getCloseHandshakeType
public abstract Draft.CloseHandshakeType getCloseHandshakeType()
-
copyInstance
public abstract Draft copyInstance()
Drafts must only be by one websocket at all. To prevent drafts to be used more than once the Websocket implementation should call this method in order to create a new usable version of a given draft instance.
The copy can be safely used in conjunction with a new websocket connection.- Returns:
- a copy of the draft
-
translateHandshake
public Handshakedata translateHandshake(ByteBuffer buf) throws InvalidHandshakeException
- Throws:
InvalidHandshakeException
-
checkAlloc
public int checkAlloc(int bytecount) throws LimitExedeedException, InvalidDataException
-
setParseMode
public void setParseMode(WebSocket.Role role)
-
getRole
public WebSocket.Role getRole()
-
-