All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.godmao.mqserver.ServerInitializer Maven / Gradle / Ivy

There is a newer version: 0.2.7.RELEASE
Show newest version
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