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 java.lang.ObjectBase 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 classDraft.CloseHandshakeTypeEnum which represents type of handshake is required for a closestatic classDraft.HandshakeStateEnum which represents the states a handshake may be in
-
Field Summary
Fields Modifier and Type Field Description protected Framedata.OpcodecontinuousFrameTypestatic intINITIAL_FAMESIZEstatic intMAX_FAME_SIZEprotected WebSocket.RoleroleIn some cases the handshake will be parsed different depending on whether
-
Constructor Summary
Constructors Constructor Description Draft()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract Draft.HandshakeStateacceptHandshakeAsClient(ClientHandshake request, ServerHandshake response)abstract Draft.HandshakeStateacceptHandshakeAsServer(ClientHandshake handshakedata)protected booleanbasicAccept(Handshakedata handshakedata)intcheckAlloc(int bytecount)java.util.List<Framedata>continuousFrame(Framedata.Opcode op, java.nio.ByteBuffer buffer, boolean fin)abstract DraftcopyInstance()Drafts must only be by one websocket at all.abstract java.nio.ByteBuffercreateBinaryFrame(Framedata framedata)abstract java.util.List<Framedata>createFrames(java.lang.String text, boolean mask)abstract java.util.List<Framedata>createFrames(java.nio.ByteBuffer binary, boolean mask)java.util.List<java.nio.ByteBuffer>createHandshake(Handshakedata handshakedata, WebSocket.Role ownrole)java.util.List<java.nio.ByteBuffer>createHandshake(Handshakedata handshakedata, WebSocket.Role ownrole, boolean withcontent)abstract Draft.CloseHandshakeTypegetCloseHandshakeType()WebSocket.RolegetRole()abstract ClientHandshakeBuilderpostProcessHandshakeRequestAsClient(ClientHandshakeBuilder request)abstract HandshakeBuilderpostProcessHandshakeResponseAsServer(ClientHandshake request, ServerHandshakeBuilder response)abstract voidprocessFrame(WebSocketImpl webSocketImpl, Framedata frame)Handle the frame specific to the draftstatic java.nio.ByteBufferreadLine(java.nio.ByteBuffer buf)static java.lang.StringreadStringLine(java.nio.ByteBuffer buf)abstract voidreset()voidsetParseMode(WebSocket.Role role)java.lang.StringtoString()abstract java.util.List<Framedata>translateFrame(java.nio.ByteBuffer buffer)HandshakedatatranslateHandshake(java.nio.ByteBuffer buf)static HandshakeBuildertranslateHandshakeHttp(java.nio.ByteBuffer buf, WebSocket.Role role)
-
-
-
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 java.nio.ByteBuffer readLine(java.nio.ByteBuffer buf)
-
readStringLine
public static java.lang.String readStringLine(java.nio.ByteBuffer buf)
-
translateHandshakeHttp
public static HandshakeBuilder translateHandshakeHttp(java.nio.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 java.nio.ByteBuffer createBinaryFrame(Framedata framedata)
-
createFrames
public abstract java.util.List<Framedata> createFrames(java.nio.ByteBuffer binary, boolean mask)
-
createFrames
public abstract java.util.List<Framedata> createFrames(java.lang.String text, 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 java.util.List<Framedata> continuousFrame(Framedata.Opcode op, java.nio.ByteBuffer buffer, boolean fin)
-
reset
public abstract void reset()
-
createHandshake
public java.util.List<java.nio.ByteBuffer> createHandshake(Handshakedata handshakedata, WebSocket.Role ownrole)
-
createHandshake
public java.util.List<java.nio.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 java.util.List<Framedata> translateFrame(java.nio.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(java.nio.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()
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-