public class BaiduRpcProtocol extends AbstractProtocol
body_size][meta_size
], 12 bytes in total
body_size and meta_size are in network byte
order (big endian)
attachment_size is set iff request/response has attachment | 构造器和说明 |
|---|
BaiduRpcProtocol() |
| 限定符和类型 | 方法和说明 |
|---|---|
BaiduRpcDecodePacket |
decode(DynamicCompositeByteBuf in)
客户端/服务端解析请求包成header+body buffer
|
void |
decodeRequest(Object packet,
RpcRequest rpcRequest)
服务端反序列化rpc请求
|
RpcResponse |
decodeResponse(Object packet,
io.netty.channel.ChannelHandlerContext ctx)
客户端反序列化rpc响应
|
protected io.netty.buffer.ByteBuf |
encode(BaiduRpcEncodePacket packet) |
io.netty.buffer.ByteBuf |
encodeRequest(RpcRequest rpcRequest)
客户端序列化请求对象
|
io.netty.buffer.ByteBuf |
encodeResponse(RpcResponse rpcResponse)
服务端序列化返回结果。
|
decodeHttpRequest, decodeHttpResponse, encodeHttpRequest, encodeHttpResponse, returnChannelBeforeResponsepublic io.netty.buffer.ByteBuf encodeRequest(RpcRequest rpcRequest) throws Exception
ProtocolencodeRequest 在接口中 ProtocolencodeRequest 在类中 AbstractProtocolrpcRequest - 待发送给服务端的对象Exception - 序列化异常public RpcResponse decodeResponse(Object packet, io.netty.channel.ChannelHandlerContext ctx) throws Exception
ProtocoldecodeResponse 在接口中 ProtocoldecodeResponse 在类中 AbstractProtocolpacket - header & body的bufctx - netty channel contextException - 反序列化异常public BaiduRpcDecodePacket decode(DynamicCompositeByteBuf in) throws BadSchemaException, TooBigDataException, NotEnoughDataException
Protocoldecode 在接口中 Protocoldecode 在类中 AbstractProtocolin - 输入byte bufBadSchemaException - header格式不对TooBigDataException - body太大NotEnoughDataException - 可读长度不够,由于粘包拆包问题。public void decodeRequest(Object packet, RpcRequest rpcRequest) throws Exception
ProtocoldecodeRequest 在接口中 ProtocoldecodeRequest 在类中 AbstractProtocolpacket - header & body的bufExceptionpublic io.netty.buffer.ByteBuf encodeResponse(RpcResponse rpcResponse) throws Exception
ProtocolencodeResponse 在接口中 ProtocolencodeResponse 在类中 AbstractProtocolrpcResponse - 服务端要返回给客户端的对象Exception - 序列化异常protected io.netty.buffer.ByteBuf encode(BaiduRpcEncodePacket packet) throws Exception
ExceptionCopyright © 2018 Baidu, Inc.. All rights reserved.