首先利用反射获取方法字段,然后取得字段的值
private static ConcurrentHashMap<String, Session> map = new ConcurrentHashMap<>();
@OnOpen
public void onOpen(Session session) throws IllegalAccessException {
log.info(session.getId() + "开始连接");
map.put(session.getId(), session);
for (String s : map.keySet()) {
Session session1 = map.get(s);
Class<? extends Session> sessionClass = session1.getClass();
for (Field declaredField : sessionClass.getDeclaredFields()) {
declaredField.setAccessible(true); // 设置私有字段可访问
Object fieldValue = declaredField.get(session1);
log.info("字段名:" + declaredField.getName() + ",字段值:" + fieldValue);
}
}
}
获取的字段值
webSocketContainer
:WebSocket容器,用于管理WebSocket连接。requestUri
:请求的URI,即WebSocket的URL。requestParameterMap
:请求的参数映射,包含从URL中提取的参数。queryString
:查询字符串,即URL中的参数部分。userPrincipal
:用户主体,表示与WebSocket连接关联的用户身份信息。endpointConfig
:端点配置,包含与WebSocket端点相关的配置信息。negotiatedExtensions
:协商的扩展,表示与客户端协商的WebSocket扩展。subProtocol
:子协议,表示与客户端协商的WebSocket子协议。pathParameters
:路径参数,包含从URL路径中提取的参数。secure
:是否使用安全连接(HTTPS)。httpSessionId
:HTTP会话ID,表示与WebSocket连接关联的HTTP会话ID。id
:连接ID,表示WebSocket连接的唯一标识符。textMessageHandler
:文本消息处理器,用于处理接收到的文本消息。binaryMessageHandler
:二进制消息处理器,用于处理接收到的二进制消息。pongMessageHandler
:Pong消息处理器,用于处理接收到的Pong消息。state
:连接状态,表示WebSocket连接的状态(如OPEN、CLOSED等)。userProperties
:用户属性,用于存储与WebSocket连接相关的自定义属性。maxBinaryMessageBufferSize
:最大二进制消息缓冲区大小。maxTextMessageBufferSize
:最大文本消息缓冲区大小。maxIdleTimeout
:最大空闲超时时间,表示在没有活动的情况下保持连接的最长时间。lastActiveRead
:上次读取活动的时间戳。lastActiveWrite
:上次写入活动的时间戳。futures
:未来对象,用于处理与WebSocket连接相关的异步操作。wsFrame
:WebSocket帧,表示当前正在处理的WebSocket帧。