Ich habe eine Anwendung, die LogRecord über TCP sendind und ich möchte diese Protokolle erfassen. Ich bin neu mit Netty und nachdem ich mit einigen Beispielen geträufelt habe, kann ich die LogRecord Objekte nicht lesen.Wie kann ich LogRecord mit Netty erhalten?
Ich versuchte, das Array von Bytes zu erhalten, um das Objekt zu deserialisieren, aber ich bekomme Fehler. Jemand kann mir ein gutes Beispiel oder Trinkgeld nennen. Hier
ist der Code:
@Component
@Qualifier("socketChannelInitializer")
public class SocketChannelInitializer extends ChannelInitializer<SocketChannel> {
private static final ByteArrayDecoder DECODER = new ByteArrayDecoder();
private static final ByteArrayEncoder ENCODER = new ByteArrayEncoder();
@Autowired
@Qualifier("socketServerHandler")
private ChannelInboundHandlerAdapter socketServerHandler;
@Override
protected void initChannel(SocketChannel socketChannel) throws Exception {
ChannelPipeline pipeline = socketChannel.pipeline();
// Add the text line codec combination first,
pipeline.addLast(new DelimiterBasedFrameDecoder(1024 * 1024, Delimiters.lineDelimiter()));
// the encoder and decoder are static as these are sharable
pipeline.addLast(DECODER);
pipeline.addLast(ENCODER);
pipeline.addLast(socketServerHandler);
}
}
Hier ist ein Teil des Handlers:
@Override
protected void channelRead0(ChannelHandlerContext ctx, byte[] msg) throws Exception {
ByteBuffer byteBuffer = ByteBuffer.wrap(msg).asReadOnlyBuffer();
}