- Common ways to obtain WebSocketFrame
private void myMethod () {WebSocketFrame w =
ByteBuf binaryData;new TextWebSocketFrame(binaryData)
ByteBuf binaryData;new BinaryWebSocketFrame(binaryData)
new CloseWebSocketFrame()
- Smart code suggestions by Codota
}
protected WebSocketMessage toMessage(WebSocketFrame frame) { DataBuffer payload = bufferFactory().wrap(frame.content()); return new WebSocketMessage(messageTypes.get(frame.getClass()), payload); }
@Override protected void decode(ChannelHandlerContext ctx, WebSocketFrame frame, List<Object> out) throws Exception { if (frame instanceof PingWebSocketFrame) { frame.content().retain(); ctx.channel().writeAndFlush(new PongWebSocketFrame(frame.content())); return; } if (frame instanceof PongWebSocketFrame && dropPongFrames) { return; } out.add(frame.retain()); }
@Override public boolean acceptOutboundMessage(Object msg) throws Exception { return (msg instanceof TextWebSocketFrame || msg instanceof BinaryWebSocketFrame || msg instanceof ContinuationWebSocketFrame) && ((WebSocketFrame) msg).content().readableBytes() > 0 && (((WebSocketFrame) msg).rsv() & WebSocketExtension.RSV1) == 0; }
private void handleWebSocketFrame(final ChannelHandlerContext ctx, WebSocketFrame frame) { if (frame instanceof CloseWebSocketFrame) { handshaker.close(ctx.channel(), (CloseWebSocketFrame) frame.retain()); } else if (frame instanceof TextWebSocketFrame) { webSocketClientRegistry.receivedTextWebSocketFrame(((TextWebSocketFrame) frame)); } else if (frame instanceof PingWebSocketFrame) { ctx.write(new PongWebSocketFrame(frame.content().retain())); } else { throw new UnsupportedOperationException(String.format("%s frame types not supported", frame.getClass().getName())); } }
private long getBytes(Object obj) { if (obj == null) return 0; if (obj instanceof Buffer) { return ((Buffer) obj).length(); } else if (obj instanceof ByteBuf) { return ((ByteBuf) obj).readableBytes(); } else if (obj instanceof HttpContent) { return ((HttpContent) obj).content().readableBytes(); } else if (obj instanceof WebSocketFrame) { return ((WebSocketFrame) obj).content().readableBytes(); } else if (obj instanceof FileRegion) { return ((FileRegion) obj).count(); } else if (obj instanceof ChunkedFile) { ChunkedFile file = (ChunkedFile) obj; return file.endOffset() - file.startOffset(); } else { return -1; } }
private void handleWebSocketFrame(final ChannelHandlerContext ctx, WebSocketFrame frame) throws JsonProcessingException { if (frame instanceof CloseWebSocketFrame) { handshaker.close(ctx.channel(), (CloseWebSocketFrame) frame.retain()).addListener(new ChannelFutureListener() { public void operationComplete(ChannelFuture future) { clientRegistry.remove(ctx); } }); } else if (frame instanceof TextWebSocketFrame) { try { HttpRequest httpRequest = httpRequestSerializer.deserialize(((TextWebSocketFrame) frame).text()); clientRegistry.put(ctx, httpRequest); sendUpdate(httpRequest, ctx); } catch (IllegalArgumentException iae) { sendMessage(ctx, ImmutableMap.<String, Object>of("error", iae.getMessage())); } } else if (frame instanceof PingWebSocketFrame) { ctx.write(new PongWebSocketFrame(frame.content().retain())); } else { throw new UnsupportedOperationException(String.format("%s frame types not supported", frame.getClass().getName())); } }
/** * Only supported TextWebSocketFrame * * @param ctx * @param frame */ private void handleWebSocketFrame(ChannelHandlerContext ctx, WebSocketFrame frame) { if (frame instanceof CloseWebSocketFrame) { this.handler.onDisConnect(this.context); this.handshaker.close(ctx.channel(), (CloseWebSocketFrame) frame.retain()); return; } if (frame instanceof PingWebSocketFrame) { ctx.channel().write(new PongWebSocketFrame(frame.content().retain())); return; } if (!(frame instanceof TextWebSocketFrame)) { throw new UnsupportedOperationException("unsupported frame type: " + frame.getClass().getName()); } this.context.setReqText(((TextWebSocketFrame) frame).text()); this.handler.onText(this.context); }
private void onBinaryFrame0(WebSocketFrame frame) { byte[] bytes = byteBuf2Bytes(frame.content()); for (WebSocketListener listener : listeners) { listener.onBinaryFrame(bytes, frame.isFinalFragment(), frame.rsv()); } }
/** * Only supported TextWebSocketFrame * * @param ctx * @param frame */ private void handleWebSocketFrame(ChannelHandlerContext ctx, WebSocketFrame frame) { if (frame instanceof CloseWebSocketFrame) { this.handler.onDisConnect(this.context); this.handshaker.close(ctx.channel(), (CloseWebSocketFrame) frame.retain()); return; } if (frame instanceof PingWebSocketFrame) { ctx.channel().write(new PongWebSocketFrame(frame.content().retain())); return; } if (!(frame instanceof TextWebSocketFrame)) { throw new UnsupportedOperationException("unsupported frame type: " + frame.getClass().getName()); } this.context.setReqText(((TextWebSocketFrame) frame).text()); this.handler.onText(this.context); }
@Override protected void decode(ChannelHandlerContext ctx, WebSocketFrame msg, List<Object> out) throws Exception { ByteBuf payload = msg.content().duplicate().retain(); if (msg instanceof BinaryWebSocketFrame) { out.add(new MyWebSocketFrame(
@Override protected void encode(ChannelHandlerContext ctx, WebSocketFrame msg, List<Object> out) throws Exception { final ByteBuf data = msg.content(); byte[] mask;
private void onTextFrame0(WebSocketFrame frame) { // faster than frame.text(); String text = Utf8ByteBufCharsetDecoder.decodeUtf8(frame.content()); frame.isFinalFragment(); frame.rsv(); for (WebSocketListener listener : listeners) { listener.onTextFrame(text, frame.isFinalFragment(), frame.rsv()); } }
@Override public void channelRead0(ChannelHandlerContext ctx, Object msg) { Channel ch = ctx.channel(); if (msg instanceof FullHttpResponse) { FullHttpResponse httpResponse = (FullHttpResponse) msg; final SettableFuture<String> registrationFuture = ch.attr(REGISTRATION_FUTURE).get(); if (httpResponse.headers().contains(UPGRADE, WEBSOCKET, true) && !handshaker.isHandshakeComplete()) { handshaker.finishHandshake(ch, httpResponse); final String clientRegistrationId = httpResponse.headers().get("X-CLIENT-REGISTRATION-ID"); registrationFuture.set(clientRegistrationId); mockServerLogger.trace("web socket client " + clientRegistrationId + " connected!"); } else if (httpResponse.status().equals(HttpResponseStatus.NOT_IMPLEMENTED)) { String message = readRequestBody(httpResponse); registrationFuture.setException(new WebSocketException(message)); mockServerLogger.warn(message); } else { registrationFuture.setException(new WebSocketException("Unsupported web socket message " + new FullHttpResponseToMockServerResponse().mapMockServerResponseToFullHttpResponse(httpResponse))); } } else if (msg instanceof WebSocketFrame) { WebSocketFrame frame = (WebSocketFrame) msg; if (frame instanceof TextWebSocketFrame) { webSocketClient.receivedTextWebSocketFrame((TextWebSocketFrame) frame); } else if (frame instanceof PingWebSocketFrame) { ctx.write(new PongWebSocketFrame(frame.content().retain())); } else if (frame instanceof CloseWebSocketFrame) { mockServerLogger.trace("web socket client received request to close"); ch.close(); } } }
Optional<?> converted = ConversionService.SHARED.convert(msg.content(), bodyArgument); NettyRxWebSocketSession currentSession = getSession(); MediaType mediaType = messageHandler.getValue(Consumes.class, MediaType.class).orElse(MediaType.APPLICATION_JSON_TYPE); try { converted = mediaTypeCodecRegistry.findCodec(mediaType).map(codec -> codec.decode(bodyArgument, new NettyByteBufferFactory(ctx.alloc()).wrap(msg.content()))); } catch (CodecException e) { if (LOG.isErrorEnabled()) {
encoder.writeOutbound(msg.content().retain());
private long getBytes(Object obj) { if (obj == null) return 0; if (obj instanceof Buffer) { return ((Buffer) obj).length(); } else if (obj instanceof ByteBuf) { return ((ByteBuf) obj).readableBytes(); } else if (obj instanceof HttpContent) { return ((HttpContent) obj).content().readableBytes(); } else if (obj instanceof WebSocketFrame) { return ((WebSocketFrame) obj).content().readableBytes(); } else if (obj instanceof FileRegion) { return ((FileRegion) obj).count(); } else if (obj instanceof ChunkedFile) { ChunkedFile file = (ChunkedFile) obj; return file.endOffset() - file.startOffset(); } else { return -1; } }
ctx.write(new PongWebSocketFrame(frame.content().retain())); return;