public static ResponseMessage makeResponse(int msgId, int responseCode) { return new ResponseMessage(msgId, responseCode); }
if (command == Command.RESPONSE) { int responseCode = (int) in.readUnsignedInt(); message = new ResponseMessage(messageId, responseCode); } else { int length = (int) in.readUnsignedInt();
if (command == Command.RESPONSE) { int responseCode = in.readUnsignedShort(); message = new ResponseMessage(messageId, responseCode); } else { int length = in.readUnsignedShort();
@Override protected void decode(ChannelHandlerContext ctx, ByteBuf in, List<Object> out) { if (in.readableBytes() < 5) { return; } in.markReaderIndex(); short command = in.readUnsignedByte(); int messageId = in.readUnsignedShort(); int codeOrLength = in.readUnsignedShort(); if (limitChecker.quotaReached(ctx, messageId)) { return; } MessageBase message; if (command == Command.RESPONSE) { message = new ResponseMessage(messageId, codeOrLength); } else { if (in.readableBytes() < codeOrLength) { in.resetReaderIndex(); return; } message = produce(messageId, command, (String) in.readCharSequence(codeOrLength, CharsetUtil.UTF_8)); } log.trace("Incoming {}", message); stats.mark(command); out.add(message); }
@Override protected void decode(ChannelHandlerContext ctx, ByteBuf in, List<Object> out) { if (in.readableBytes() < PROTOCOL_APP_HEADER_SIZE) { return; } in.markReaderIndex(); short command = in.readUnsignedByte(); int messageId = in.readUnsignedShort(); //actually here should be long. but we do not expect this number to be large //so it should perfectly fit int int codeOrLength = (int) in.readUnsignedInt(); if (limitChecker.quotaReached(ctx, messageId)) { return; } MessageBase message; if (command == Command.RESPONSE) { message = new ResponseMessage(messageId, codeOrLength); } else { if (in.readableBytes() < codeOrLength) { in.resetReaderIndex(); return; } validateLength(codeOrLength); message = produce(messageId, command, (String) in.readCharSequence(codeOrLength, CharsetUtil.UTF_8)); } log.trace("Incoming {}", message); stats.mark(command); out.add(message); }
@Override public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { log.debug("In webappdecoder. {}", msg); if (msg instanceof BinaryWebSocketFrame) { try { ByteBuf in = ((BinaryWebSocketFrame) msg).content(); short command = in.readUnsignedByte(); int messageId = in.readUnsignedShort(); if (limitChecker.quotaReached(ctx, messageId)) { return; } MessageBase message; if (command == Command.RESPONSE) { message = new ResponseMessage(messageId, (int) in.readUnsignedInt()); } else { int codeOrLength = in.capacity() - 3; message = produce(messageId, command, (String) in.readCharSequence(codeOrLength, UTF_8)); } log.trace("Incoming websocket msg {}", message); stats.markWithoutGlobal(Command.WEB_SOCKETS); ctx.fireChannelRead(message); } finally { ReferenceCountUtil.release(msg); } } else { super.channelRead(ctx, msg); } }