Files
ai-security-xdr/haobang-security-dm/syslog-serve/src/main/java/com/netty/SyslogUdpChannelInitializer.java
T

35 lines
1.3 KiB
Java
Raw Normal View History

package com.netty;
import com.haobang.wal.SyslogWalService;
import io.netty.channel.ChannelInitializer;
import io.netty.channel.ChannelPipeline;
import io.netty.channel.socket.DatagramChannel;
import io.netty.handler.codec.string.StringDecoder;
import io.netty.handler.codec.string.StringEncoder;
import java.nio.charset.Charset;
/**
* UDP 通道初始化器
*/
public class SyslogUdpChannelInitializer extends ChannelInitializer<DatagramChannel> {
private final Charset syslogCharset;
private final SyslogWalService walService;
SyslogUdpChannelInitializer(Charset syslogCharset, SyslogWalService walService) {
this.syslogCharset = java.util.Objects.requireNonNull(syslogCharset, "syslogCharset");
this.walService = java.util.Objects.requireNonNull(walService, "walService");
}
@Override
protected void initChannel(DatagramChannel ch) throws Exception {
ChannelPipeline pipeline = ch.pipeline();
// 添加字符串解码器和编码器(使用可配置的字符集)
pipeline.addLast("decoder", new StringDecoder(syslogCharset));
pipeline.addLast("encoder", new StringEncoder(syslogCharset));
// 添加业务处理器
pipeline.addLast("handler", new SyslogMessageHandler(syslogCharset, walService));
}
}