package com.manning.nettyinaction.chapter11;
import com.manning.nettyinaction.util.BogusSslContextFactory;
import io.netty.channel.Channel;
import io.netty.channel.ChannelFuture;
import io.netty.channel.ChannelInitializer;
import io.netty.channel.group.ChannelGroup;
import javax.net.ssl.SSLContext;
import java.net.InetSocketAddress;
/**
*/
public class SecureChatServer extends ChatServer {
private final SSLContext context;
public SecureChatServer(SSLContext context) {
this.context = context;
}
@Override
protected ChannelInitializer<Channel> createInitializer(ChannelGroup group) {
return new SecureChatServerIntializer(group, context);
}
public static void main(String[] args) {
if (args.length != 1) {
System.err.println("Please give port as argument");
System.exit(1);
}
int port = Integer.parseInt(args[0]);
SSLContext context = BogusSslContextFactory.getServerContext();
final SecureChatServer endpoint = new SecureChatServer(context);
ChannelFuture future = endpoint.start(new InetSocketAddress(port));
Runtime.getRuntime().addShutdownHook(new Thread() {
@Override
public void run() {
endpoint.destroy();
}
});
future.channel().closeFuture().syncUninterruptibly();
}
}