向新连接的客户端发送问候语

Send greeting to a newly connected client

我正在用 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 中的所有内容都是异步的,因此我不确定这是否是在连接成功时发送问候语的正确方法。有人可以推荐推荐的方法吗?

执行 channelActive 回调后,您应该通过 ChannelInboundHandlerAdapter 执行此操作。

类似于:

public class GreetingHandler extends ChannelInboundHandlerAdapter { @Override public void channelActive(ChannelHandlerContext ctx) { ch.writeAndFlush(Unpooled.copiedBuffer("Hi there!", CharsetUtil.UTF_8)); } }