@Override public Future<Void> sendBytesByFuture(ByteBuffer data) { if (LOG.isDebugEnabled()) { LOG.debug("sendBytesByFuture with {}",BufferUtil.toDetailString(data)); } WebSocketFrame frame = WebSocketFrame.binary().setPayload(data); return sendAsyncFrame(frame); }
@Override public Future<Void> sendBytesByFuture(ByteBuffer data) { if (LOG.isDebugEnabled()) { LOG.debug("sendBytesByFuture with {}",BufferUtil.toDetailString(data)); } WebSocketFrame frame = WebSocketFrame.binary().setPayload(data); return sendAsyncFrame(frame); }
@Override public void sendPartialBytes(ByteBuffer fragment, boolean isLast) throws IOException { if (LOG.isDebugEnabled()) { LOG.debug("sendPartialBytes({}, {})",BufferUtil.toDetailString(fragment),isLast); } WebSocketFrame frame = WebSocketFrame.binary().setPayload(fragment).setFin(isLast); blockingWrite(frame); }
@Override public void sendPartialBytes(ByteBuffer fragment, boolean isLast) throws IOException { if (LOG.isDebugEnabled()) { LOG.debug("sendPartialBytes({}, {})",BufferUtil.toDetailString(fragment),isLast); } WebSocketFrame frame = WebSocketFrame.binary().setPayload(fragment).setFin(isLast); blockingWrite(frame); }
/** * Blocking write of bytes. */ @Override public void sendBytes(ByteBuffer data) throws IOException { connection.getIOState().assertOutputOpen(); if (LOG.isDebugEnabled()) { LOG.debug("sendBytes with {}",BufferUtil.toDetailString(data)); } WebSocketFrame frame = WebSocketFrame.binary().setPayload(data); blockingWrite(frame); }
/** * Blocking write of bytes. */ @Override public void sendBytes(ByteBuffer data) throws IOException { connection.getIOState().assertOutputOpen(); if (LOG.isDebugEnabled()) { LOG.debug("sendBytes with {}",BufferUtil.toDetailString(data)); } WebSocketFrame frame = WebSocketFrame.binary().setPayload(data); blockingWrite(frame); }
public void generate(long channelId, Frame frame, WriteCallback callback) { ByteBuffer muxPayload = bufferPool.acquire(frame.getPayloadLength() + DATA_FRAME_OVERHEAD,true); BufferUtil.flipToFill(muxPayload); // start building mux payload writeChannelId(muxPayload,channelId); byte b = (byte)(frame.isFin()?0x80:0x00); // fin b |= (byte)(frame.isRsv1()?0x40:0x00); // rsv1 b |= (byte)(frame.isRsv2()?0x20:0x00); // rsv2 b |= (byte)(frame.isRsv3()?0x10:0x00); // rsv3 b |= (byte)(frame.getType().getOpCode() & 0x0F); // opcode muxPayload.put(b); BufferUtil.put(frame.getPayload(),muxPayload); // build muxed frame WebSocketFrame muxFrame = WebSocketFrame.binary(); BufferUtil.flipToFlush(muxPayload,0); muxFrame.setPayload(muxPayload); // NOTE: the physical connection will handle masking rules for this frame. // release original buffer (no longer needed) bufferPool.release(frame.getPayload()); // send muxed frame down to the physical connection. outgoing.outgoingFrame(muxFrame,callback); }
public void generate(long channelId, Frame frame, WriteCallback callback) { ByteBuffer muxPayload = bufferPool.acquire(frame.getPayloadLength() + DATA_FRAME_OVERHEAD,true); BufferUtil.flipToFill(muxPayload); // start building mux payload writeChannelId(muxPayload,channelId); byte b = (byte)(frame.isFin()?0x80:0x00); // fin b |= (byte)(frame.isRsv1()?0x40:0x00); // rsv1 b |= (byte)(frame.isRsv2()?0x20:0x00); // rsv2 b |= (byte)(frame.isRsv3()?0x10:0x00); // rsv3 b |= (byte)(frame.getType().getOpCode() & 0x0F); // opcode muxPayload.put(b); BufferUtil.put(frame.getPayload(),muxPayload); // build muxed frame WebSocketFrame muxFrame = WebSocketFrame.binary(); BufferUtil.flipToFlush(muxPayload,0); muxFrame.setPayload(muxPayload); // NOTE: the physical connection will handle masking rules for this frame. // release original buffer (no longer needed) bufferPool.release(frame.getPayload()); // send muxed frame down to the physical connection. outgoing.outgoingFrame(muxFrame,callback); }
WebSocketFrame frame = WebSocketFrame.binary(); frame.setPayload(payload); outgoing.outgoingFrame(frame,callback);
WebSocketFrame frame = WebSocketFrame.binary(); frame.setPayload(payload); outgoing.outgoingFrame(frame,callback);