有没有办法在频道上保持状态.我正在写一个聊天服务器,我想保留有关Channel所属用户的信息.我想也许Channel会提供一种存储用户对象的方法,但我看不到一个.有没有办法做到这一点,而不需要像地图这样的东西?
1)您可以在channelHandlerContext中设置状态信息,如下所示,稍后再使用.
channelHandlerContext.setAttachment(yourObj);
Object yourObj2 = channelHandlerContext.getAttachment();
Run Code Online (Sandbox Code Playgroud)
2)在那里创建一个本地频道并存储状态信息(频道本地就像一个特定频道的本地线程)
import org.jboss.netty.channel.ChannelLocal;
import java.util.Map;
public class UserInfoHolder {
public final static ChannelLocal<Map<String, String>> USER_INFO = new ChannelLocal<Map<String, String>>();
}
//if you have the channel reference, you can store and retrieve information like this
Map<String,String> userMap = ....
//store
UserInfoHolder.USER_INFO.set(channel, userMap);
//retrive
Map<String,String> userMap2 = UserInfoHolder.USER_INFO.get(channel);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2635 次 |
| 最近记录: |