package com.jsowell.pile.rpc; import com.jsowell.common.protocol.RpcResponse; import com.jsowell.common.protocol.SyncPromise; import com.jsowell.common.util.RpcUtil; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.SimpleChannelInboundHandler; public class RpcResponseHandler extends SimpleChannelInboundHandler { @Override protected void channelRead0(ChannelHandlerContext ctx, RpcResponse msg) throws Exception { // 根据请求id,在集合中找到与外部线程通信的SyncPromise对象 SyncPromise syncPromise = RpcUtil.getSyncPromiseMap().get(msg.getId()); if(syncPromise != null) { // 设置响应结果 // syncPromise.setRpcResponse(msg); // 唤醒外部线程 syncPromise.wake(); } } }