【发布时间】:2015-01-10 16:04:47
【问题描述】:
我在 dropwizard 服务中实现了 websocket,他们需要在服务器端实现会话管理。在连接时,我们得到会话对象,它是客户端和服务器之间的通信链接。但他们不是获取像 session.getId() 这样的会话唯一 ID 的方法,我需要 id 进行会话管理。
所以我一直在考虑使用 System.identityHashCode(Session) 来获取唯一 ID 并使用此 ID 处理会话。
websocket onConnect 结构仅供参考
@OnWebSocketConnect
public void onOpen(Session session) throws IOException
{
// code to add the session in session management using unique id
}
那么使用 System.identityHashCode(Session) 会好吗?
【问题讨论】:
-
你的会话是什么?没有某种唯一标识符,会话就无法存在——它就是将会话定义为会话的原因。
-
@Dunes Session 表示与远程 WebSocket 端点download.eclipse.org/jetty/stable-9/apidocs/org/eclipse/jetty/…的通信的活动链接
-
您能否在不访问会话的情况下重新创建密钥?如果没有,您不妨使用集合而不是地图来存储会话。
标签: java session websocket uniqueidentifier