{ @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
推荐阅读
-
-
中华网游戏综合|《Returnal》将充分利用PS5硬件 增强玩家代入感和体验
-
台海网|疫情时间点提前又一铁证!去年11月巴西下水道中已有新冠病毒
-
济南属于哪个省哪个地区 济南属于哪个省哪个市哪个区
-
富士康▲谁都没想到!半路杀出亲兄弟!郭台铭:华为芯片我全包了
-
老年植物缺素症2:如何诊断缺素和区分相似症状?什么是形态诊断法?
-
文物收藏|《夷坚志》记载,南方有种取暖的火柜,目前这种老物件快看不到了
-
小姐姐|“豪门贵妇”胡静吃路边摊!素颜拍照皮肤白嫩,地上全是食物残渣
-
游戏攻略|DNF游戏攻略丨剑帝最强3觉装出炉,红10一刀三千亿,希洛克也顶不住
-
-
索康电器|热水杀菌,可是把水加热以后,真的能够消灭掉所有的细菌吗?,索康净水器说
-
陈乔恩|热搜,海底捞不雅事件!当事人被曝光是知名网黄“是阿朱呀”
-
电视剧全网热度榜,《繁花》跌至第二,第一热度高达79.13
-
好六网|旭旭宝宝帮黑旭增幅也失败,两国服第一双双陨落,DNF:继CEO后
-
长安|铃木彻底告别中国市场!全新车型更换长安欧尚LOGO
-
-
-
幽默笑话乐翻天■你是全网焦点,搞笑GIF动图:本来可以成为全班焦点…现在好了
-
-
中泰证券资管|3000+股票,6000+基金,选基真的比选股简单吗?