2024-08-01 18:03:21 +08:00
|
|
|
|
package com.jsowell.pile.rpc;
|
2024-07-31 16:48:29 +08:00
|
|
|
|
|
2024-08-01 18:03:21 +08:00
|
|
|
|
import com.jsowell.common.protocol.RpcResponse;
|
|
|
|
|
|
import com.jsowell.common.protocol.SyncPromise;
|
|
|
|
|
|
import com.jsowell.common.util.RpcUtil;
|
2024-07-31 16:48:29 +08:00
|
|
|
|
import io.netty.channel.ChannelHandlerContext;
|
|
|
|
|
|
import io.netty.channel.SimpleChannelInboundHandler;
|
|
|
|
|
|
|
|
|
|
|
|
public class RpcResponseHandler extends SimpleChannelInboundHandler<RpcResponse> {
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
protected void channelRead0(ChannelHandlerContext ctx, RpcResponse msg) throws Exception {
|
|
|
|
|
|
// 根据请求id,在集合中找到与外部线程通信的SyncPromise对象
|
|
|
|
|
|
SyncPromise syncPromise = RpcUtil.getSyncPromiseMap().get(msg.getId());
|
|
|
|
|
|
|
|
|
|
|
|
if(syncPromise != null) {
|
|
|
|
|
|
// 设置响应结果
|
2024-08-01 15:38:33 +08:00
|
|
|
|
// syncPromise.setRpcResponse(msg);
|
2024-07-31 16:48:29 +08:00
|
|
|
|
|
|
|
|
|
|
// 唤醒外部线程
|
|
|
|
|
|
syncPromise.wake();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|