@Override public WebSocketFrame textFrame(String str, boolean isFinal) { return new WebSocketFrameImpl(str, isFinal); }
@Override public short closeStatusCode() { checkClose(); if (!closeParsed) parseCloseFrame(); return this.closeStatusCode; }
WebSocketFrame encodeFrame(WebSocketFrameImpl frame) { ByteBuf buf = frame.getBinaryData(); if (buf != Unpooled.EMPTY_BUFFER) { buf = safeBuffer(buf, chctx.alloc()); } switch (frame.type()) { case BINARY: return new BinaryWebSocketFrame(frame.isFinal(), 0, buf); case TEXT: return new TextWebSocketFrame(frame.isFinal(), 0, buf); case CLOSE: return new CloseWebSocketFrame(true, 0, buf); case CONTINUATION: return new ContinuationWebSocketFrame(frame.isFinal(), 0, buf); case PONG: return new PongWebSocketFrame(buf); case PING: return new PingWebSocketFrame(buf); default: throw new IllegalStateException("Unsupported websocket msg " + frame); } }
public String textData() { return getBinaryData().toString(CharsetUtil.UTF_8); }
private void checkClose() { if (!isClose()) throw new IllegalStateException("This should be a close frame"); }
private void parseCloseFrame() { int length = length(); if (length < 2) { closeStatusCode = 1000; closeReason = null; } else { int index = binaryData.readerIndex(); closeStatusCode = binaryData.getShort(index); if (length == 2) { closeReason = null; } else { closeReason = binaryData.toString(index + 2, length - 2, StandardCharsets.UTF_8); } } }
@Override public String toString() { return getClass().getSimpleName() + "(type: " + type + ", " + "data: " + getBinaryData() + ')'; }
private void checkClose() { if (!isClose()) throw new IllegalStateException("This should be a close frame"); }
private void parseCloseFrame() { int length = length(); if (length < 2) { closeStatusCode = 1000; closeReason = null; } else { int index = binaryData.readerIndex(); closeStatusCode = binaryData.getShort(index); if (length == 2) { closeReason = null; } else { closeReason = binaryData.toString(index + 2, length - 2, StandardCharsets.UTF_8); } } }
@Override public WebSocketFrame pongFrame(Buffer data) { return new WebSocketFrameImpl(FrameType.PONG, data.getByteBuf(), true); } }
WebSocketFrame encodeFrame(WebSocketFrameImpl frame) { ByteBuf buf = frame.getBinaryData(); if (buf != Unpooled.EMPTY_BUFFER) { buf = safeBuffer(buf, chctx.alloc()); } switch (frame.type()) { case BINARY: return new BinaryWebSocketFrame(frame.isFinal(), 0, buf); case TEXT: return new TextWebSocketFrame(frame.isFinal(), 0, buf); case CLOSE: return new CloseWebSocketFrame(true, 0, buf); case CONTINUATION: return new ContinuationWebSocketFrame(frame.isFinal(), 0, buf); case PONG: return new PongWebSocketFrame(buf); case PING: return new PingWebSocketFrame(buf); default: throw new IllegalStateException("Unsupported websocket msg " + frame); } }
@Override public String closeReason() { checkClose(); if (!closeParsed) parseCloseFrame(); return this.closeReason; }
public String textData() { return getBinaryData().toString(CharsetUtil.UTF_8); }
@Override public WebSocketFrame continuationFrame(Buffer data, boolean isFinal) { return new WebSocketFrameImpl(FrameType.CONTINUATION, data.getByteBuf(), isFinal); }
@Override public short closeStatusCode() { checkClose(); if (!closeParsed) parseCloseFrame(); return this.closeStatusCode; }
@Override public String toString() { return getClass().getSimpleName() + "(type: " + type + ", " + "data: " + getBinaryData() + ')'; }
@Override public WebSocketFrame pingFrame(Buffer data) { return new WebSocketFrameImpl(FrameType.PING, data.getByteBuf(), true); }
@Override public String closeReason() { checkClose(); if (!closeParsed) parseCloseFrame(); return this.closeReason; }
private void writeTextFrameInternal(String str) { WebSocketFrame frame = new WebSocketFrameImpl(str); writeFrame(frame); }
@Override public WebSocketFrame binaryFrame(Buffer data, boolean isFinal) { return new WebSocketFrameImpl(FrameType.BINARY, data.getByteBuf(), isFinal); }