Netty 处理程序不是每次调用的实例化器
Netty handler is not instantiater for every call
我对新的 Handler() 实现有疑问。我在处理程序中有一个 class 成员,它是用随机 UUID 初始化的。我看数据的时候,有多个相同UUID的请求。
public class HttpServerInitializer extends ChannelInitializer<SocketChannel> {
@Override
public void initChannel(SocketChannel ch) throws Exception {
.....
p.addLast("httprequest", new HttpServerHandler(config));
}
}
HttpServerHandler
private String uuid;
public HttpServerHandler(final StaticConfig staticConfig) {
this.uuid = UUID.randomUUID().toString();
}
这个 uuid 并不是每次调用都是唯一的。
相反,如果我将 random_uuid 添加到 attr ,它工作正常。
所以,我确实有办法解决这个问题。问题是这与我对如何创建处理程序的理解相冲突。
initChannel(...)
为每个新连接调用。因此,如果您通过同一连接发送多个请求,您将看到一次
我对新的 Handler() 实现有疑问。我在处理程序中有一个 class 成员,它是用随机 UUID 初始化的。我看数据的时候,有多个相同UUID的请求。
public class HttpServerInitializer extends ChannelInitializer<SocketChannel> {
@Override
public void initChannel(SocketChannel ch) throws Exception {
.....
p.addLast("httprequest", new HttpServerHandler(config));
}
}
HttpServerHandler
private String uuid;
public HttpServerHandler(final StaticConfig staticConfig) {
this.uuid = UUID.randomUUID().toString();
}
这个 uuid 并不是每次调用都是唯一的。
相反,如果我将 random_uuid 添加到 attr ,它工作正常。
所以,我确实有办法解决这个问题。问题是这与我对如何创建处理程序的理解相冲突。
initChannel(...)
为每个新连接调用。因此,如果您通过同一连接发送多个请求,您将看到一次