org.glassfish.grizzly.websockets
Class ProtocolHandler

java.lang.Object
  extended by org.glassfish.grizzly.websockets.ProtocolHandler
Direct Known Subclasses:
Draft06Handler, Draft07Handler, Draft76Handler

public abstract class ProtocolHandler
extends java.lang.Object


Field Summary
protected  Connection connection
           
protected  byte inFragmentedType
           
protected  boolean maskData
           
protected  byte outFragmentedType
           
 
Constructor Summary
ProtocolHandler(boolean maskData)
           
 
Method Summary
protected  byte checkForLastFrame(DataFrame frame, byte opcode)
           
 GrizzlyFuture<DataFrame> close(int code, java.lang.String reason)
           
protected abstract  HandShake createHandShake(HttpContent requestContent)
           
protected abstract  HandShake createHandShake(java.net.URI uri)
           
 long decodeLength(byte[] bytes)
          Convert a byte[] to a long.
 void doClose()
           
 byte[] encodeLength(long length)
          Converts the length given to the appropriate framing data: 0-125 one element that is the payload length.
abstract  byte[] frame(DataFrame frame)
           
 Connection getConnection()
           
 WebSocket getWebSocket()
           
 HandShake handshake(FilterChainContext ctx, WebSocketApplication app, HttpContent request)
           
protected abstract  boolean isControlFrame(byte opcode)
           
 boolean isMaskData()
           
abstract  DataFrame parse(Buffer buffer)
           
 GrizzlyFuture<DataFrame> send(byte[] data)
           
 GrizzlyFuture<DataFrame> send(DataFrame frame)
           
 GrizzlyFuture<DataFrame> send(DataFrame frame, CompletionHandler<DataFrame> completionHandler)
           
 GrizzlyFuture<DataFrame> send(java.lang.String data)
           
 void setConnection(Connection handler)
           
 void setWebSocket(WebSocket webSocket)
           
 GrizzlyFuture<DataFrame> stream(boolean last, byte[] bytes, int off, int len)
           
 GrizzlyFuture<DataFrame> stream(boolean last, java.lang.String fragment)
           
 DataFrame unframe(Buffer buffer)
           
protected  void validate(byte fragmentType, byte opcode)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

connection

protected Connection connection

inFragmentedType

protected byte inFragmentedType

outFragmentedType

protected byte outFragmentedType

maskData

protected final boolean maskData
Constructor Detail

ProtocolHandler

public ProtocolHandler(boolean maskData)
Method Detail

handshake

public HandShake handshake(FilterChainContext ctx,
                           WebSocketApplication app,
                           HttpContent request)

send

public final GrizzlyFuture<DataFrame> send(DataFrame frame)

send

public GrizzlyFuture<DataFrame> send(DataFrame frame,
                                     CompletionHandler<DataFrame> completionHandler)

getConnection

public Connection getConnection()

setConnection

public void setConnection(Connection handler)

getWebSocket

public WebSocket getWebSocket()

setWebSocket

public void setWebSocket(WebSocket webSocket)

isMaskData

public boolean isMaskData()

frame

public abstract byte[] frame(DataFrame frame)

createHandShake

protected abstract HandShake createHandShake(HttpContent requestContent)

createHandShake

protected abstract HandShake createHandShake(java.net.URI uri)

send

public GrizzlyFuture<DataFrame> send(byte[] data)

send

public GrizzlyFuture<DataFrame> send(java.lang.String data)

stream

public GrizzlyFuture<DataFrame> stream(boolean last,
                                       byte[] bytes,
                                       int off,
                                       int len)

stream

public GrizzlyFuture<DataFrame> stream(boolean last,
                                       java.lang.String fragment)

close

public GrizzlyFuture<DataFrame> close(int code,
                                      java.lang.String reason)

unframe

public DataFrame unframe(Buffer buffer)

parse

public abstract DataFrame parse(Buffer buffer)

decodeLength

public long decodeLength(byte[] bytes)
Convert a byte[] to a long. Used for rebuilding payload length.


encodeLength

public byte[] encodeLength(long length)
Converts the length given to the appropriate framing data:
  1. 0-125 one element that is the payload length.
  2. up to 0xFFFF, 3 element array starting with 126 with the following 2 bytes interpreted as a 16 bit unsigned integer showing the payload length.
  3. else 9 element array starting with 127 with the following 8 bytes interpreted as a 64-bit unsigned integer (the high bit must be 0) showing the payload length.

Parameters:
length - the payload size
Returns:
the array

validate

protected void validate(byte fragmentType,
                        byte opcode)

isControlFrame

protected abstract boolean isControlFrame(byte opcode)

checkForLastFrame

protected byte checkForLastFrame(DataFrame frame,
                                 byte opcode)

doClose

public void doClose()


Copyright © 2011 Oracle Corpration. All Rights Reserved.