Ich bin nicht zu erfahren nety und habe eine Frage über die Dokumentation von ChannelPipeline. Hier ist, was es über genau das ist:Verwendung netty mit Geschäftslogik
static final EventExecutorGroup group = new DefaultEventExecutorGroup(16);
...
ChannelPipeline pipeline = ch.pipeline();
pipeline.addLast("decoder", new MyProtocolDecoder());
pipeline.addLast("encoder", new MyProtocolEncoder());
// Tell the pipeline to run MyBusinessLogicHandler's event handler methods
// in a different thread than an I/O thread so that the I/O thread is not blocked by
// a time-consuming task.
// If your business logic is fully asynchronous or finished very quickly, you don't
// need to specify a group.
pipeline.addLast(group, "handler", new MyBusinessLogicHandler());
Ich verstehe nicht ganz, die MyBusinessLogicHandler
Klasse. Sollte es DuplexChannelHandler
oder etwas anderes implementieren? Zum Beispiel in meinem Fall habe ich die folgende Klasse:
public class Packet{}
Ich möchte einige Byte-Sequenz in Packet
entschlüsseln, geben MyBusinessLogicHandler
die einige Packet
produziert. und codiere es dann erneut in einen Byte-Strom, um es an einen Client zurückzusenden. Ich sehe es derzeit wie folgt aus:
public class MyBusinessLogicHandler extends SimpleChannelInboundHandler<MyModel>{
public void channelRead0(ChannelHandlerContext ctx, Packet msg){
Packet rslt = null;
//Do some complicated business logic
ctx.write(rslt);
}
}
Ich bin nicht sicher, ob es eine übliche Art und Weise, die Dinge in netty zu tun. Kannst du bitte klären?
Verstanden! Vielen Dank. –