1。前言

webSoket 无法获取 HttpSession  ,使用就更谈不上了 !!!

2解决过程

使用   configurator  注入即可

(1)

配置一个类

 1 package cn.cen2guo.clinic.websocket;
2
3
4 import javax.servlet.http.HttpSession;
5 import javax.websocket.HandshakeResponse;
6 import javax.websocket.server.HandshakeRequest;
7 import javax.websocket.server.ServerEndpointConfig;
8
9
10 /**
11 * 用于从websocket中获取用户session
12 */
13 public class HttpSessionConfigurator extends ServerEndpointConfig.Configurator {
14
15 @Override
16 public void modifyHandshake(ServerEndpointConfig sec, HandshakeRequest request, HandshakeResponse response) {
17 HttpSession httpSession = (HttpSession) request.getHttpSession();
18 sec.getUserProperties().put(HttpSession.class.getName(), httpSession);
19 }
20 }

(2)websocket业务类注入   HttpSessionConfigurator.class

(3)onOpen里面的额使用方法

可以用  config 来获取 ,也可以以当前会话session来获取

测试截图:

3 . 经验:

当前会话session 都保存起来,这样就可以对其他会话session进行操作了

担心线程安全问题,可使用 ConcurrentMap<String, Map<String, List<Object>>> messageMap=new ConcurrentHashMap<>();

当然,里面的泛型则根据需要自己定义  ,ConcurrentMap 的用法 与Map一样,唯一区别就是自带同步锁,线程安全

在@OnOpen方法里 将当前会话session设为全局变量,于是,在其他方法里都可以使用session获取  HttpSession   !!!

如 :@OnClose 方法里面 ,完美使用,

有些方法里面自带当前会话session参数  ,那么既 可以使用 已经在@onOpen记录的session  [this.session]  ,也可以使用该方法注入的session

.

webSocket 使用 HttpSession 的数据配置与写法的更多相关文章

  1. Appium+python自动化(三十)- 实现代码与数据分离 - 数据配置-yaml(超详解)

    简介 本篇文章主要介绍了python中yaml配置文件模块的使用让其完成数据和代码的分离,宏哥觉得挺不错的,于是就义无反顾地分享给大家,也给大家做个参考.一起跟随宏哥过来看看吧. 思考问题 前面我们配 ...

  2. 微信小程序开发工具的数据,配置,日志等目录在哪儿? 怎么找?

    原文地址:http://www.wxapp-union.com/portal.php?mod=view&aid=359 本文由本站halfyawn原创:感谢原创者:如有疑问,请在评论内回复   ...

  3. STM32F0xx_DMA收发USART数据配置详细过程

    前言 关于DMA(Direct Memory Access)的功能,前面关注我微信的人应该知道,其实我已经在F1芯片上简单讲了一下.有网友要求在F0讲解一下使用DMA收发串口数据.今天就应网友要求总结 ...

  4. STM32 使用 printf 发送数据配置方法 -- 串口 UART, JTAG SWO, JLINK RTT

    STM32串口通信中使用printf发送数据配置方法(开发环境 Keil RVMDK) http://home.eeworld.com.cn/my/space-uid-338727-blogid-47 ...

  5. Unity3d通用工具类之数据配置加载类-ini配置文件加载

    Unity3d通用工具类之数据配置加载类-ini配置文件加载 上次我们讲过xml文件的加载配置管理,今天我们换个配置文件,也是比较常见的配置文件.ini格式的数据. 按照国际管理先贴一张啥是.ini文 ...

  6. Unity3d通用工具类之数据配置加载类

    今天,我们来讲讲游戏中的数据配置加载. 什么是游戏数据加载呢?一般来说游戏中会有场景地图. 按照国际惯例,先贴一张游戏场景的地图: 在这张地图上,我们可以看到有很多正六边形,正六边形上有树木.岩石等. ...

  7. FlashChart json数据配置 中文文档

    http://www.riaos.com/ria/2274 FlashChart json数据配置说明 有朋友要用flashchart,感觉这个还不错.就整理了一份文档. 基本包括了所有json配置的 ...

  8. 使用Typescript重构axios(十六)——请求和响应数据配置化

    0. 系列文章 1.使用Typescript重构axios(一)--写在最前面 2.使用Typescript重构axios(二)--项目起手,跑通流程 3.使用Typescript重构axios(三) ...

  9. TD-LTE华为 DBS3900数据配置实践 典型案例

    案例:华为 DBS3900 双基站二扇区配置(同频切换) 一.数据配置前的硬件准备: HW-DBS3900: (1#基站名称) FAN (风扇),安装在 16#槽位: LBBP (基带处理单板),安装 ...

随机推荐

  1. 关于python中显存回收的问题

    技术背景 笔者在执行一个Jax的任务中,又发现了一个奇怪的问题,就是明明只分配了很小的矩阵空间,但是在多次的任务执行之后,显存突然就爆了.而且此时已经按照Jax的官方说明配置了XLA_PYTHON_C ...

  2. 09 - Vue3 UI Framework - Table 组件

    接下来做个自定义的表格组件,即 table 组件 返回阅读列表点击 这里 需求分析 开始之前我们先做一个简单的需求分析 基于原生 table 标签的强语义 允许用户自定义表头.表体 可选是否具有边框 ...

  3. vue-cli3 vue2 保留 webpack 支持 vite 成功实践

    大家好! 文本是为了提升开发效率及体验实践诞生的. 项目背景: 脚手架:vue-cli3,具体为 "@vue/cli-service": "^3.4.1" 库: ...

  4. 『与善仁』Appium基础 — 25、APP模拟手势高级操作

    目录 1.手指轻敲操作 2.手指按下和抬起操作 3.等待操作 4.手指长按操作 5.手指移动操作 6.综合练习 APP模拟手势的动作都被封装在TouchAction类中,TouchAction是App ...

  5. NAT各种模式

    https://blog.csdn.net/u011245325/article/details/9294229

  6. Uni-app原生插件入门使用教程-[1]从Uni-app插件市场试用插件

    [1]从Uniapp插件市场试用插件 当HBuilderX中提供的能力无法满足App功能需求,需要通过使用Andorid/iOS原生开发实现时,可使用App离线SDK开发原生插件来扩展原生能力. 如使 ...

  7. yarn 过程中遇到的问题

    场景 项目中打包遇到了点问题,所以想删除原先装好的依赖包,重新yarn,结果神奇的报错了,无语... 遇到的问题 (1)error An unexpected error occurred: &quo ...

  8. SpringBoot项目使用Caffeine本地缓存

    环境配置:(或以上版本,必须) JDK 版本:1.8  Caffeine 版本:2.8.0SpringBoot 版本:2.2.2.RELEASE 也可以不与SpringBoot结合 1.添加maven ...

  9. JAVA携带参数(带有请求参数,请求头参数)直接发送POST请求

    <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpcl ...

  10. 【LeetCode】345. Reverse Vowels of a String 解题报告(Java & Python & C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 使用栈 双指针 日期 [LeetCode] 题目地址 ...