在 netty TCP 连接上存储变量
Store variables on netty TCP Connection
我需要存储一个对象供以后在 NETTY 上的 TCP 连接上使用。用户登录后,一些变量需要存储在这个用户连接上。
正确的做法是什么?我尝试在 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 会话共享,因此没有成功。
如何在此特定 TCP 用户连接上设置我的 Session() 对象,以便来自该用户的所有下一条消息都可以轻松检索此数据?
谢谢
只需像您一样使用 ctx.channel().attr(attrObj).set(...)
。每个通道都有不同的属性,因此每个连接都是如此。如果每个 TCP 连接有多个会话,您需要将它放在一个映射中,该映射作为属性存储在 Channel
.
上
我需要存储一个对象供以后在 NETTY 上的 TCP 连接上使用。用户登录后,一些变量需要存储在这个用户连接上。
正确的做法是什么?我尝试在 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 会话共享,因此没有成功。
如何在此特定 TCP 用户连接上设置我的 Session() 对象,以便来自该用户的所有下一条消息都可以轻松检索此数据?
谢谢
只需像您一样使用 ctx.channel().attr(attrObj).set(...)
。每个通道都有不同的属性,因此每个连接都是如此。如果每个 TCP 连接有多个会话,您需要将它放在一个映射中,该映射作为属性存储在 Channel
.