ServerChannelHandler.java 文件源码

java
阅读 25 收藏 0 点赞 0 评论 0

项目:CmRaft 作者:
@Override
public void channelRead(ChannelHandlerContext ctx, Object msg) { 
  //System.out.println("channelRead");
  RpcCall call = (RpcCall)msg;
  if(call == null) {
    return;
  }
  LOG.debug("RpcServer read, call ID: " + call.getCallId() + ", local server:" + ctx.channel().localAddress().toString());
  try {
  Message response = service.callBlockingMethod(call.getMd(), null, call.getMessage());
    if(response != null) {
      ResponseHeader.Builder builder = ResponseHeader.newBuilder();
      builder.setId(call.getCallId()); 
      builder.setResponseName(call.getMd().getName());
      ResponseHeader header = builder.build();
      call.setHeader(header);
      call.setMessage(response);
      ctx.writeAndFlush(call);
      callCounter.getAndIncrement();
    }
  } catch(ServiceException e) {
    LOG.error("Rpc Server channelRead exception:" + e.getMessage(), e);
  }
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号