我正在使用netty 4.0.33来构建SSL / TLS客户端/服务器。对于每个连接,我想在两个对等体之间记录TLS连接成功的消息。 我应该把这段代码放在哪里? channelActive还是channelRead0?我对channelActive和channelRead0的目的有点困惑。看起来在服务器端,我们根本不需要channelActive。这是真的吗?
答案 0 :(得分:1)
如果您想在握手成功时做某事,可以使用:
class MyHandler extends ChannelInboundHandler {
@Override
public void userEventTriggered(ChannelHandlerContext ctx, Object evt) {
if (evt == SslHandshakeCompletionEvent.SUCCESS) {
// Your handling logging
} else {
super.userEventTriggered(ctx, evt);
}
}
}
答案 1 :(得分:0)
您可以将LoggingHandler添加到管道中,如果客户端处于活动状态,它将记录。有效意味着连接。 ChannelRead在channelActive之后调用,在这里你可以阅读消息。在channelActive中,您可以根据需要初始化一些有用的内容(例如,将连接的频道添加到队列中)。