package ru.nanit.limbo.connection; import io.netty.channel.Channel; import io.netty.channel.ChannelInitializer; import io.netty.channel.ChannelPipeline; import io.netty.handler.timeout.ReadTimeoutHandler; import ru.nanit.limbo.configuration.LimboConfig; import ru.nanit.limbo.protocol.pipeline.VarIntFrameDecoder; import ru.nanit.limbo.protocol.pipeline.PacketDecoder; import ru.nanit.limbo.protocol.pipeline.PacketEncoder; import ru.nanit.limbo.protocol.pipeline.VarIntLengthEncoder; import ru.nanit.limbo.server.LimboServer; import java.util.concurrent.TimeUnit; public class ClientChannelInitializer extends ChannelInitializer { private final LimboServer server; public ClientChannelInitializer(LimboServer server){ this.server = server; } @Override protected void initChannel(Channel channel) { ChannelPipeline pipeline = channel.pipeline(); pipeline.addLast("timeout", new ReadTimeoutHandler(server.getConfig().getReadTimeout(), TimeUnit.MILLISECONDS)); pipeline.addLast("frame_decoder", new VarIntFrameDecoder()); pipeline.addLast("frame_encoder", new VarIntLengthEncoder()); pipeline.addLast("decoder", new PacketDecoder()); pipeline.addLast("encoder", new PacketEncoder()); pipeline.addLast("handler", new ClientConnection(channel, server)); } }