我需要一点Netty的帮助。我想知道你如何扩展Channel接口并将自己的方法添加到它并使Netty使用它(或转换为它)?
太
答案 0 :(得分:1)
答案是实际的净值4.1.25。最终。
首先扩展您的频道类型
this.router.navigate(['XXX/Update', id]);
如果您想将其用于客户端引导,只需将该类传递给它即可。
public class ExtendedNioChannel extends NioSocketChannel implements Channel {
private volatile boolean handshakeComplete;
// more custom fields and methods
}
对于服务器引导,您需要覆盖NioServerSocketChannel并将NioServerSocketChannel.class传递给ServerBootstrap。
Bootstrap b = new Bootstrap();
b.group(workerGroup);
b.channel(ExtendedNioChannel.class);
答案 1 :(得分:0)
我想更好的解决方案是将Channel“封装”到ChannelLocal或ChannelHandlerContext中的类中。然后jsut检索您的实现并使用它。这将允许您在NIO和OIO之间切换,而无需担心实现。
我在niosmtp中做了类似的事情: https://github.com/normanmaurer/niosmtp/blob/master/src/main/java/me/normanmaurer/niosmtp/transport/netty/NettySMTPClientSession.java
这也可以帮助您解密代码。
要提供自己的频道,您需要破解套接字实现。但正如我认为你应该尽可能避免它。