2017-10-01 3 views
0

J'écris un serveur tcp avec netty et je souhaite envoyer des messages d'accueil à tous les nouveaux clients connectés. À partir de maintenant, je comptais le faire avec ChannelInitializerEnvoi d'un message d'accueil à un client nouvellement connecté

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)); 
    } 
    } 

Comme tout Netty est asynchrone Je ne suis pas sûr que ce soit la bonne façon d'envoyer saluer la connexion réussi. Quelqu'un peut-il suggérer une façon recommandée?

Répondre

1

Vous devez le faire via un ChannelInboundHandlerAdapter une fois que le rappel channelActive est exécuté.

Quelque chose comme:

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