我正在编写一个带netty的tcp服务器,并希望向所有新连接的客户端发送一些问候语。截至目前,我打算用ChannelInitializer
ServerBootstrap b;
//...
b.channel(NioServerSocketChannel.class)
.childHandler(new ChannelInitializer<SocketChannel>()) {
public void init(SocketChannel ch){
ch.pipeline(). //...
ch.writeAndFlush(Unpooled.copiedBuffer("Hi there!", CharsetUtil.UTF_8));
}
}
由于netty中的所有内容都是异步的,因此我不确定这是否是在连接成功发送问候语的正确方法。有人可以建议推荐的方式吗?
答案 0 :(得分:1)
执行ChannelInboundHandlerAdapter
回调后,您应该通过channelActive
执行此操作。
类似的东西:
public class GreetingHandler extends ChannelInboundHandlerAdapter {
@Override
public void channelActive(ChannelHandlerContext ctx) {
ch.writeAndFlush(Unpooled.copiedBuffer("Hi there!", CharsetUtil.UTF_8));
}
}