#java #netty
#java #netty
Вопрос:
У меня проблема с реализацией new Handler(). У меня есть член класса в обработчике, который инициализируется случайным 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 , он будет работать нормально.
Итак, у меня есть способ исправить это. Проблема в том, что это противоречит моему пониманию того, как создаются обработчики.
Ответ №1:
initChannel(...)
вызывается для каждого нового соединения. Поэтому, если вы отправляете несколько запросов по одному и тому же соединению, вы увидите это один раз