{ @Override public String decode(ByteBuf buffer) { int lineEndIndex = CodecUtils.X.findLineEndIndex(buffer); if (-1 == lineEndIndex) { return null; } Long length = (Long) DefaultRespCodec.DECODERS.get(ReplyType.INTEGER).decode(buffer); if (null == length) { return null; } // Bulk Null String if (RespConstants.NEGATIVE_ONE.equals(length)) { return null; } // Bulk Empty String if (RespConstants.ZERO.equals(length)) { return RespConstants.EMPTY_STRING; } // 真实字节内容的长度 int readLength = (int) length.longValue(); if (buffer.readableBytes() > readLength) { byte[] bytes = new byte[readLength]; buffer.readBytes(bytes); // 重置读游标为rn之后的第一个字节 buffer.readerIndex(buffer.readerIndex() + 2); return new String(bytes, RespConstants.UTF_8); } return null; }}public class RespArrayDecoder implements RespDecoder { @Override public Object decode(ByteBuf buffer) { int lineEndIndex = CodecUtils.X.findLineEndIndex(buffer); if (-1 == lineEndIndex) { return null; } // 解析元素个数 Long length = (Long) DefaultRespCodec.DECODERS.get(ReplyType.INTEGER).decode(buffer); if (null == length) { return null; } // Null Array if (RespConstants.NEGATIVE_ONE.equals(length)) { return null; } // Array Empty List if (RespConstants.ZERO.equals(length)) { return Lists.newArrayList(); } List
推荐阅读
-
C罗|烂泥扶不上墙!尤文阵中一人被打爆 今夏离队不可避免
-
清醒姐:重情重义,一旦拿你当朋友,就会毫无保留,最值得深交的4个星座
-
青岛城阳一火锅店疑因煤气泄漏致5死,3月曾出过同类事故
-
-
家有男孩,关于“蛋蛋”的这3件事越早知道越好,关乎孩子一生
-
-
火爆新闻|《隐秘的角落》中的普普为什么要骗钱说给弟弟治病?
-
小米|只要2199元 小米推出536L超大冰箱:20格随便装
-
教师|师范专业的4个“优势”,除了稳定之外,还有一些“隐藏待遇”
-
-
行走自由的花|巴萨后卫将在未来几小时内以1800万欧完成英超转会,达成协议
-
淡紫色连衣裙穿出了女性的魅力,配上吊坠,摩登又个性
-
岳飞|欲加之罪何患无辞,这句话出自什么地方? 东窗事发指的是什么?
-
周扒皮看热闹▲摩托车用便宜的火花塞,会导致发动机出现杂音吗?,车友问
-
【娱乐从珊】表面上让你不爽,其实是在培养你,?别不懂,领导的这五种行为
-
中国质量万里行|村道制造车祸骗取钱财,民警:作案十余起仅一人报警,碰瓷团伙新招
-
『深扒财经圈』智变科技丨2020领航者峰会介绍全场景数字金融平台,数字金融
-
小六的穿搭日记|金子涵舞台造型又飒又A,穿搭休闲不失时尚,青你2实力选手
-
-
张兰|靠直播卖了1.8亿,64岁的张兰为何能有如此大的心脏?