
com.godmao.mqserver.ServerInitializer Maven / Gradle / Ivy
package com.godmao.mqserver;
import com.godmao.mqserver.handler.*;
import com.godmao.netty.handler.DefaultLengthFieldDecoderHandler;
import com.godmao.netty.handler.DefaultLengthFieldEncoderHandler;
import io.netty.channel.Channel;
import io.netty.channel.ChannelInitializer;
import io.netty.channel.ChannelPipeline;
class ServerInitializer extends ChannelInitializer {
private final AbstractServer connect;
public ServerInitializer(AbstractServer connect) {
this.connect = connect;
}
@Override
protected void initChannel(Channel ch) {
ChannelPipeline pipeline = ch.pipeline();
int index = 0;
// // 打印包数据
// pipeline.addLast("logging-" + ++index, new LoggingHandler());
// 拆包器 只能接收3M
pipeline.addLast("unpacker-" + ++index, new DefaultLengthFieldDecoderHandler(3 * 1024 * 1024));
// 粘包器
pipeline.addLast("prepender-" + ++index, new DefaultLengthFieldEncoderHandler());
// 解码器
pipeline.addLast("decode-" + ++index, ServerDecoderHandler.INSTANCE);
// 编码器 -取消订阅
pipeline.addLast("encode-" + ++index, TopicSubscribeCancelMessageEncoderHandler.INSTANCE);
// 编码器 -主题订阅
pipeline.addLast("encode-" + ++index, TopicSubscribeMessageEncoderHandler.INSTANCE);
// 编码器 -服务绑定
pipeline.addLast("encode-" + ++index, BindMessageEncoderHandler.INSTANCE);
// 编码器 -心跳
pipeline.addLast("encode-" + ++index, HeartbeatMessageEncoderHandler.INSTANCE);
// 编码器 -服务消息-单服务
pipeline.addLast("encode-" + ++index, SingleMessageEncoderHandler.INSTANCE);
// 编码器 -服务消息-多服务
pipeline.addLast("encode-" + ++index, MultipleMessageEncoderHandler.INSTANCE);
// 业务处理器
pipeline.addLast("servic" + ++index, new MultipleMessageHandler(connect));
pipeline.addLast("servic" + ++index, new SingleMessageHandler(connect));
pipeline.addLast("servic" + ++index, new TopicSyncMessageHandler(connect));
pipeline.addLast("servic" + ++index, new HeartbeatMessageHandler(connect));
pipeline.addLast("servic" + ++index, new BindMessageHandler(connect));
pipeline.addLast("servic" + ++index, new ServerBaseHandler(connect));
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy