Fix a bug in the SecureChat example where greeting is generated too soon
This commit is contained in:
parent
a6c4f651a7
commit
8bab0aae9e
@ -16,6 +16,8 @@
|
|||||||
package io.netty.example.securechat;
|
package io.netty.example.securechat;
|
||||||
|
|
||||||
import io.netty.channel.Channel;
|
import io.netty.channel.Channel;
|
||||||
|
import io.netty.channel.ChannelFuture;
|
||||||
|
import io.netty.channel.ChannelFutureListener;
|
||||||
import io.netty.channel.ChannelHandlerContext;
|
import io.netty.channel.ChannelHandlerContext;
|
||||||
import io.netty.channel.ChannelInboundMessageHandlerAdapter;
|
import io.netty.channel.ChannelInboundMessageHandlerAdapter;
|
||||||
import io.netty.channel.group.ChannelGroup;
|
import io.netty.channel.group.ChannelGroup;
|
||||||
@ -37,8 +39,12 @@ public class SecureChatServerHandler extends ChannelInboundMessageHandlerAdapter
|
|||||||
static final ChannelGroup channels = new DefaultChannelGroup();
|
static final ChannelGroup channels = new DefaultChannelGroup();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void channelActive(ChannelHandlerContext ctx) throws Exception {
|
public void channelActive(final ChannelHandlerContext ctx) throws Exception {
|
||||||
// Once session is secured, send a greeting.
|
// Once session is secured, send a greeting and register the channel to the global channel
|
||||||
|
// list so the channel received the messages from others.
|
||||||
|
ctx.pipeline().get(SslHandler.class).handshake().addListener(new ChannelFutureListener() {
|
||||||
|
@Override
|
||||||
|
public void operationComplete(ChannelFuture future) throws Exception {
|
||||||
ctx.write(
|
ctx.write(
|
||||||
"Welcome to " + InetAddress.getLocalHost().getHostName() +
|
"Welcome to " + InetAddress.getLocalHost().getHostName() +
|
||||||
" secure chat service!\n");
|
" secure chat service!\n");
|
||||||
@ -47,10 +53,10 @@ public class SecureChatServerHandler extends ChannelInboundMessageHandlerAdapter
|
|||||||
ctx.pipeline().get(SslHandler.class).getEngine().getSession().getCipherSuite() +
|
ctx.pipeline().get(SslHandler.class).getEngine().getSession().getCipherSuite() +
|
||||||
" cipher suite.\n");
|
" cipher suite.\n");
|
||||||
|
|
||||||
// Register the channel to the global channel list
|
|
||||||
// so the channel received the messages from others.
|
|
||||||
channels.add(ctx.channel());
|
channels.add(ctx.channel());
|
||||||
}
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void messageReceived(ChannelHandlerContext ctx, String request) throws Exception {
|
public void messageReceived(ChannelHandlerContext ctx, String request) throws Exception {
|
||||||
|
Loading…
Reference in New Issue
Block a user