Playframework 2.0 游戏2.0中session.id在哪里?

Playframework 2.0 游戏2.0中session.id在哪里?,playframework-2.0,Playframework 2.0,在Play1.0中,我们使用session.getId()方法来检索唯一的会话标识符 该id便于在全局缓存中为键添加前缀 Play 2.0 session.id的等效项在哪里?由于会话数据存储为cookie,因此Play 2.0不再有会话id。事实上,也不需要标识令牌,会话数据只是随每个请求一起传递,使服务器完全无状态 但是,如果需要在全局缓存中存储每个用户的数据,则可能仍然需要id。 为此,请使用下面的代码 // Generate a unique id String uuid=session

在Play1.0中,我们使用session.getId()方法来检索唯一的会话标识符

该id便于在全局缓存中为键添加前缀


Play 2.0 session.id的等效项在哪里?

由于会话数据存储为cookie,因此Play 2.0不再有会话id。事实上,也不需要标识令牌,会话数据只是随每个请求一起传递,使服务器完全无状态

但是,如果需要在全局缓存中存储每个用户的数据,则可能仍然需要id。 为此,请使用下面的代码

// Generate a unique id
String uuid=session("uuid");
if(uuid==null) {
    uuid=java.util.UUID.randomUUID().toString();
    session("uuid", uuid);
}

会话id?不管怎样,这听起来很像Java EE…

如何控制全局缓存中对象的生命周期?是否配置TTL和其他过期参数?生命周期取决于缓存实现。我不知道细节,如果我记得EHCache使用weakreference,当JVM需要内存时,这些引用会被清除。EHCache是最好的缓存api之一,我确信它们支持过期设置。好的,但是在Play2.0中有什么本质上的不同/更好呢?会话(通常)只是具有特定生命周期的存储。“状态问题”是由实现细节引起的。我只有500个字符,但您应该研究restful框架和基于会话的框架,以及它们在可伸缩性方面的好处。关于缓存,如果您确实请求,请使用j2ee.getSession().get(“mykey”);该值在会话的生命周期内都存在,通常为30mn或更多,具体取决于使用情况。在游戏中,当您从缓存中获取数据时,数据可能不在那里。。。因此,您必须考虑重新创建缓存项。换句话说,它是一个真正的缓存,而不是一个j2ee会话。典型(容器相关)JEE会话的可伸缩性问题是复制+更改频率,对吗?到目前为止,我所看到的Play2.0方法的优点是它独立于容器实现。