/** * Creates a new binary frame with the specified binary data and the final fragment flag. * * @param finalFragment * flag indicating if this frame is the final fragment * @param rsv * reserved bits used for protocol extensions * @param binaryData * the content of the frame. */ public BinaryWebSocketFrame(boolean finalFragment, int rsv, ChannelBuffer binaryData) { setFinalFragment(finalFragment); setRsv(rsv); setBinaryData(binaryData); }
@Override public String toString() { return getClass().getSimpleName() + "(data: " + getBinaryData() + ')'; }
@Override public WebSocket stream(byte[] fragment, int offset, int len, boolean last) { BinaryWebSocketFrame frame = new BinaryWebSocketFrame(wrappedBuffer(fragment, offset, len)); frame.setFinalFragment(last); channel.write(frame); return this; }
private WebSocketFrame decodeBinaryFrame(byte type, ChannelBuffer buffer) throws TooLongFrameException { long frameSize = 0; int lengthFieldSize = 0; byte b; do { b = buffer.readByte(); frameSize <<= 7; frameSize |= b & 0x7f; if (frameSize > maxFrameSize) { throw new TooLongFrameException(); } lengthFieldSize++; if (lengthFieldSize > 8) { // Perhaps a malicious peer? throw new TooLongFrameException(); } } while ((b & 0x80) == 0x80); if (type == (byte) 0xFF && frameSize == 0) { receivedClosingHandshake = true; return new CloseWebSocketFrame(); } return new BinaryWebSocketFrame(buffer.readBytes((int) frameSize)); }
/** * Creates a new binary frame with the specified binary data. The final fragment flag is set to true. * * @param binaryData * the content of the frame. */ public BinaryWebSocketFrame(ChannelBuffer binaryData) { setBinaryData(binaryData); }
@Override public WebSocket stream(byte[] fragment, boolean last) { BinaryWebSocketFrame frame = new BinaryWebSocketFrame(wrappedBuffer(fragment)); frame.setFinalFragment(last); channel.write(frame); return this; }
currentFrame = new TextWebSocketFrame(true, msg.getRsv(), buf); } else if (msg instanceof BinaryWebSocketFrame) { currentFrame = new BinaryWebSocketFrame(true, msg.getRsv(), buf); } else { throw new IllegalStateException(
/** * Creates a new empty binary frame. */ public BinaryWebSocketFrame() { setBinaryData(ChannelBuffers.EMPTY_BUFFER); }
@Override public WebSocket stream(byte[] fragment, int offset, int len, boolean last) { BinaryWebSocketFrame frame = new BinaryWebSocketFrame(wrappedBuffer(fragment, offset, len)); frame.setFinalFragment(last); channel.write(frame); return this; }
@Override public WebSocket sendMessage(byte[] message) { channel.write(new BinaryWebSocketFrame(wrappedBuffer(message))); return this; }
@Override public WebSocket stream(byte[] fragment, boolean last) { BinaryWebSocketFrame frame = new BinaryWebSocketFrame(wrappedBuffer(fragment)); frame.setFinalFragment(last); channel.write(frame); return this; }
return new TextWebSocketFrame(frameFinalFlag, frameRsv, framePayload); } else if (frameOpcode == OPCODE_BINARY) { return new BinaryWebSocketFrame(frameFinalFlag, frameRsv, framePayload); } else if (frameOpcode == OPCODE_CONT) { return new ContinuationWebSocketFrame(frameFinalFlag, frameRsv, framePayload);
@Override public WebSocket stream(byte[] fragment, int offset, int len, boolean last) { BinaryWebSocketFrame frame = new BinaryWebSocketFrame(wrappedBuffer(fragment, offset, len)); frame.setFinalFragment(last); channel.write(frame); return this; }
@Override public WebSocket sendMessage(byte[] message) { channel.write(new BinaryWebSocketFrame(wrappedBuffer(message))); return this; }
@Override public WebSocket stream(byte[] fragment, boolean last) { BinaryWebSocketFrame frame = new BinaryWebSocketFrame(wrappedBuffer(fragment)); frame.setFinalFragment(last); channel.write(frame); return this; }
@Override public WebSocket sendMessage(byte[] message) { channel.write(new BinaryWebSocketFrame(wrappedBuffer(message))); return this; }
@Override public WebSocket stream(byte[] fragment, boolean last) { BinaryWebSocketFrame frame = new BinaryWebSocketFrame(wrappedBuffer(fragment)); frame.setFinalFragment(last); channel.write(frame); return this; }
@Override public WebSocket sendMessage(byte[] message) { channel.write(new BinaryWebSocketFrame(wrappedBuffer(message))); return this; }
@Override public WebSocket stream(byte[] fragment, int offset, int len, boolean last) { BinaryWebSocketFrame frame = new BinaryWebSocketFrame(wrappedBuffer(fragment, offset, len)); frame.setFinalFragment(last); channel.write(frame); return this; }
@Override public void sendMessage(WebsocketConnector connector, byte[] contentAsBytes) { Channel channel = ((NettyConnector) connector).getChannel(); channel.write(new BinaryWebSocketFrame(ChannelBuffers.copiedBuffer(contentAsBytes))); } }