NettyServerChannelInitializer.java 1.2 KB

12345678910111213141516171819202122232425262728
  1. package com.warewms.hailiang.common;
  2. import io.netty.channel.ChannelInitializer;
  3. import io.netty.channel.ChannelPipeline;
  4. import io.netty.channel.socket.SocketChannel;
  5. /**
  6. * 功能描述: 服务端初始化,客户端与服务器端连接一旦创建,这个类中方法就会被回调,设置出站编码器和入站解码器
  7. *
  8. * @Author keLe
  9. * @Date 2022/8/26
  10. */
  11. public class NettyServerChannelInitializer extends ChannelInitializer<SocketChannel> {
  12. @Override
  13. protected void initChannel(SocketChannel socketChannel) throws Exception {
  14. ChannelPipeline pipeline = socketChannel.pipeline();
  15. //接收消息格式,使用自定义解析数据格式
  16. pipeline.addLast("decoder",new MyDecoder());
  17. //发送消息格式,使用自定义解析数据格式
  18. pipeline.addLast("encoder",new MyEncoder());
  19. //针对客户端,如果在1分钟时没有想服务端发送写心跳(ALL),则主动断开
  20. //如果是读空闲或者写空闲,不处理,这里根据自己业务考虑使用
  21. //pipeline.addLast(new IdleStateHandler(600,0,0, TimeUnit.SECONDS));
  22. //自定义的空闲检测
  23. pipeline.addLast(new NettyServerHandler());
  24. }
  25. }