gpt4 book ai didi

java - 在 netty TCP 连接上存储变量

转载 作者:行者123 更新时间:2023-12-02 02:52:26 24 4
gpt4 key购买 nike

我需要存储一个对象以供以后在 NETTY 上的 TCP 连接上使用。用户登录后,需要在此用户连接上存储一些变量。

正确的做法是什么?我尝试在 ChannelHandler Context() 上存储一些变量,但这已被弃用:

public void channelRegistered(ChannelHandlerContext ctx)
{
ctx.attr(attrObj).set(new Session(ctx));
}

然后我尝试存储在 channel 上:

public void channelRegistered(ChannelHandlerContext ctx)
{
ctx.channel().attr(attrObj).set(new Session(ctx));
}

该对象已与所有 TCP session 共享,因此没有成功。

如何在此特定 TCP 用户连接上设置 Session() 对象,以便来自该用户的所有后续消息都可以轻松检索此数据?

谢谢

最佳答案

只需使用 ctx.channel().attr(attrObj).set(...)正如你所做的那样。每个 channel 都有不同的属性,因此它是针对每个连接的。如果每个 TCP 连接有多个 session ,您需要将其放入作为属性存储在 Channel 上的映射中。 .

关于java - 在 netty TCP 连接上存储变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57099840/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com