Мне нужно сохранить объект для последующего использования в TCP-соединении на NETTY. После входа пользователя некоторые переменные должны быть сохранены в этом пользовательском соединении.
Как правильно это сделать? Я попытался сохранить некоторые переменные в ChannelHandler Context(), но это устарело:
public void channelRegistered(ChannelHandlerContext ctx)
{
ctx.attr(attrObj).set(new Session(ctx));
}
Затем я попытался сохранить на канале:
public void channelRegistered(ChannelHandlerContext ctx)
{
ctx.channel().attr(attrObj).set(new Session(ctx));
}
Объект был передан всем сеансам TCP, поэтому безуспешно.
Как я могу установить свой объект Session() для этого конкретного TCP-соединения пользователя, чтобы все следующие сообщения от этого пользователя могли легко получать эти данные?
Спасибо
🤔 А знаете ли вы, что...
Java обладает богатой стандартной библиотекой, включая коллекции, ввод/вывод, сетевые операции и многое другое.
Просто используйте ctx.channel().attr(attrObj).set(...)
, как вы это делали. Каждый канал имеет разные атрибуты, и поэтому для каждого соединения. Если на одно TCP-соединение приходится несколько сеансов, вам нужно будет поместить его в карту, которая хранится как атрибут в файле Channel
.