对等连接异常原因分析
遇到对等连接异常通常是因为某一端连接断开导致。经过查看代码,发现客户端实现了断开重连功能,但并没有重连日志。这说明问题可能并非出在客户端,而是上游客户端断开连接。
解决思路
针对这种情况,可以尝试以下解决思路:
@Component
public class BdspNettySocketClient {
// ... 其他代码省去
@PostCon
struct
public void start() {
// ... 其他代码省去
// 启动重连监听器
channelFuture.addListener(new ConnectionListener());
}
// ... 其他代码省去
/**
* 处理第一次连接服务器是否成功的
* @param channelFuture the source {@link Future} which called this callback
* @throws Exception
*/
@Override
public void operationComplete(ChannelFuture channelFuture) throws Exception {
if (!channelFuture.isSuccess()) {
final EventLoop loop = channelFuture.channel().eventLoop();
loop.schedule(new Runnable() {
@Override
public void run() {
System.err.println("服务端链接不上,开始重连操作...");
bdspNettySocketClient.start();
}
}, 2L, TimeUnit.SECONDS);
} else {
System.err.println("服务端链接成功...");
}
}
}