public void respond(WebSocket socket, DataFrame frame) { if (text) { socket.onFragment(frame.isLast(), frame.getTextPayload()); } else { socket.onFragment(frame.isLast(), frame.getBytes()); } }
public DataFrame(FrameType type, String data, boolean fin) { this.type = type; setPayload(data); last = fin; }
public void respond(WebSocket socket, DataFrame frame) { if(frame.isLast()) { socket.onMessage(frame.getTextPayload()); } else { socket.onFragment(frame.isLast(), frame.getTextPayload()); } } }
@Override public byte[] getBytes(DataFrame dataFrame) { final byte[] bytes = dataFrame.getBytes(); if (bytes == null) { setPayload(dataFrame, Utf8Utils.encode( Charsets.UTF8_CHARSET, dataFrame.getTextPayload())); } return dataFrame.getBytes(); }
public DataFrame toDataFrame(byte[] data, boolean last) { return new DataFrame(new BinaryFrameType(), data, last); }
public void respond(WebSocket socket) { getType().respond(socket, this); }
@Override public String toString() { return new StringBuilder("DataFrame") .append("{") .append("last=").append(last) .append(", type=").append(type.getClass().getSimpleName()) .append(", payload='").append(getTextPayload()).append('\'') .append(", bytes=").append(Utils.toString(bytes)) .append('}') .toString(); }
/** * Handle Grizzly {@link Connection} write phase. If the {@link Connection} has associated {@link WebSocket} object * (websocket connection), we assume that message is websocket {@link DataFrame} and serialize it into a {@link * Buffer}. * * @param ctx {@link FilterChainContext} * * @return {@link NextAction} instruction for {@link FilterChain}, how it should continue the execution * * @throws java.io.IOException */ @Override public NextAction handleWrite(FilterChainContext ctx) throws IOException { // get the associated websocket final WebSocket websocket = getWebSocket(ctx.getConnection()); final Object msg = ctx.getMessage(); // if there is one if (websocket != null && DataFrame.isDataFrame(msg)) { final DataFrame frame = (DataFrame) msg; final WebSocketHolder holder = WebSocketHolder.get(ctx.getConnection()); final Buffer wrap = Buffers.wrap(ctx.getMemoryManager(), holder.handler.frame(frame)); ctx.setMessage(wrap); } // invoke next filter in the chain return ctx.getInvokeAction(); }
break; } else { result.respond(holder.webSocket);
@Override public void onPong(DataFrame frame) { for (WebSocketListener listener : listeners) { listener.onPong(this, frame.getBytes()); } }
protected byte checkForLastFrame(DataFrame frame, byte opcode) { byte local = opcode; if (!frame.isLast()) { validate(outFragmentedType, local); if (outFragmentedType != 0) { local = 0x00; } else { outFragmentedType = local; local &= 0x7F; } } else if (outFragmentedType != 0) { local = (byte) 0x80; outFragmentedType = 0; } else { local |= 0x80; } return local; }
public void respond(WebSocket socket, DataFrame frame) { if(frame.isLast()) { socket.onMessage(frame.getTextPayload()); } else { socket.onFragment(frame.isLast(), frame.getTextPayload()); } } }
@Override public byte[] getBytes(DataFrame dataFrame) { final byte[] bytes = dataFrame.getBytes(); if (bytes == null) { setPayload(dataFrame, Utf8Utils.encode( Charsets.UTF8_CHARSET, dataFrame.getTextPayload())); } return dataFrame.getBytes(); }
public DataFrame toDataFrame(String data, boolean last) { return new DataFrame(new TextFrameType(), data, last); }
public void respond(WebSocket socket) { getType().respond(socket, this); }
@Override public String toString() { return new StringBuilder("DataFrame") .append("{") .append("last=").append(last) .append(", type=").append(type.getClass().getSimpleName()) .append(", payload='").append(getTextPayload()).append('\'') .append(", bytes=").append(Utils.toString(bytes)) .append('}') .toString(); }