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. NSData NSDate NSString NSArray NSDictionary 相互转化

    //    NSData  NSDate NSString NSArray NSDictionary json NSString *string = @"hello word"; ...

  2. YonBuilder低代码开发实践:4行代码实现跨实体列表数据同步

    提到增.删.改.查等数据维护,后端开发者们再熟悉不过了.传统的数据维护通过操作数据库的方式实现,步骤比较繁琐,需要通过Java代码实现数据库链接,然后编写SQL语句.编写实体,将想要的数据存到相应的数 ...

  3. 十年后回到百年前?(Excel技巧集团)

    在单元格里输入日期,有时可以偷懒,比如明年的日期可以输入至少一位的年+横杠(或斜杠)+至少一位的月+横杠(或斜杠)+至少一位的日,也就是"21-1-1",单元格里就会自动显示&qu ...

  4. CF420A Start Up 题解

    Content 给定一个长度为 \(n\) 的字符串,求这个字符串整个反转过来后是否和原字符串一样. 数据范围:\(1\leqslant n\leqslant 10^5\). Solution 众所周 ...

  5. JAVA发送邮件报错,返回500 Error: bad syntax问题

    把项目部署在Linux系统的centos服务器,发送邮件报错了. 500 Error: bad syntax 处理办法 [root@master bin]# hostname master 显示 ma ...

  6. Miniconda入门教程

    Miniconda 教程 介绍 Anaconda指的是一个开源的Python发行版本,其包含了conda.Python等180多个科学包及其依赖项.因为包含了大量的科学包,Anaconda 的下载文件 ...

  7. AndroidStudio-快捷键

    Windows: Ctrl + Alt +L (Ctrl +Shift+F 无效) (亲测,和qq热键冲突,我的解决方式是把qq除捕获屏幕外的热键全部设置为无) Mac: OPTION + CMD + ...

  8. 【九度OJ】题目1193:矩阵转置 解题报告

    [九度OJ]题目1193:矩阵转置 解题报告 标签(空格分隔): 九度OJ http://ac.jobdu.com/problem.php?pid=1193 题目描述: 输入一个N*N的矩阵,将其转置 ...

  9. 【LeetCode】830. Positions of Large Groups 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...

  10. Description has only two Sentences(hdu3307)

    Description has only two Sentences Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/327 ...