当前位置:   article > 正文

利用反射获取websocket,session字段的值

利用反射获取websocket,session字段的值

首先利用反射获取方法字段,然后取得字段的值

  1. private static ConcurrentHashMap<String, Session> map = new ConcurrentHashMap<>();
  2. @OnOpen
  3. public void onOpen(Session session) throws IllegalAccessException {
  4. log.info(session.getId() + "开始连接");
  5. map.put(session.getId(), session);
  6. for (String s : map.keySet()) {
  7. Session session1 = map.get(s);
  8. Class<? extends Session> sessionClass = session1.getClass();
  9. for (Field declaredField : sessionClass.getDeclaredFields()) {
  10. declaredField.setAccessible(true); // 设置私有字段可访问
  11. Object fieldValue = declaredField.get(session1);
  12. log.info("字段名:" + declaredField.getName() + ",字段值:" + fieldValue);
  13. }
  14. }
  15. }

获取的字段值

  • 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帧。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/blog/article/detail/40790
推荐阅读
相关标签
  

闽ICP备14008679号