Java API For WebSocket(七)Java EE环境

简介:

  7.1 J2EE环境


    websocket应用运行在Java EE平台时,需要一些额外的配置


    7.1.1 WebSocket 端点(Endpoints)和依赖注入


    WebSocket端点运行在Java EE平台时必须有完整的依赖注入支持,正如CDI规范所述,WebSocket实现了Java EE平台的部分功能,需要使用javax.inject支持属性,方法,构造函数注入。通过注解注入到所有的websocket端点以及使用这些类的拦截器中。这个需求的细节在Java EE平台规范的5.2.5节,实现该需求的部分在5.24节。


    7.2 Http Session与认证状态(Authenticated State)之间的关系


    为了在每个客户端的web资源(如JSPs,JSFs,Servlets)和服务客户端的websocket终结点共享信息,开发者通常会嵌入websocket服务器终结点到大型web应用中。因为websocket连接是使用http request请求进行初始化的,初始化过程中正在在操作的客户端下的HttpSession和任意的websockets建立的关系就是HttpSession。API允许访问正在进行的握手到唯一的HttpSession对应的同一个客户端。


    类似的,如果开放的握手请求已经通过了服务器认证,开放的握手请求API允许开发者查询请求的用户Principal,如果连接是通过请求的客户端建立的,那么websocket实现会将关联websocket会话的用户Principal看做是开放式握手的用户Principal。


    当websocket终节点是web应用中的保护资源时,也就是说,只有授权用户才能访问,然后websocket实现必须确保当底层实现决定已验证身份不再有效时,websocket终结点不再保持连接它的同行。但并不是绝对的,比如当用户退出web应用时或者认证超时或者其它原因导致的验证失败等。在这种情况下,websocket实现必须使用websocket关闭状态码1008立即关闭连接。


    另一方面,如果websocket终结点在web应用中不是受保护的资源时,开放的握手连接可能是无效的或者改变不需要websocket实现下的操作时,用户身份需要关闭连接。






本文转自 genuinecx 51CTO博客,原文链接:http://blog.51cto.com/favccxx/1602372,如需转载请自行联系原作者
目录
相关文章
|
20天前
|
监控 JavaScript 前端开发
《理解 WebSocket:Java Web 开发的实时通信技术》
【4月更文挑战第4天】WebSocket是Java Web实时通信的关键技术,提供双向持久连接,实现低延迟、高效率的实时交互。适用于聊天应用、在线游戏、数据监控和即时通知。开发涉及服务器端实现、客户端连接及数据协议定义,注意安全、错误处理、性能和兼容性。随着实时应用需求增加,WebSocket在Java Web开发中的地位将更加重要。
|
1天前
|
Java
Java配置环境
Java配置环境
7 0
Java配置环境
|
4天前
|
Java API Apache
ZooKeeper【基础 03】Java 客户端 Apache Curator 基础 API 使用举例(含源代码)
【4月更文挑战第11天】ZooKeeper【基础 03】Java 客户端 Apache Curator 基础 API 使用举例(含源代码)
23 11
|
6天前
|
安全 Java API
java借助代理ip,解决访问api频繁导致ip被禁的问题
java借助代理ip,解决访问api频繁导致ip被禁的问题
|
8天前
|
存储 安全 Java
说说Java 8 引入的Stream API
说说Java 8 引入的Stream API
12 0
|
8天前
|
分布式计算 Java API
Java 8新特性之Lambda表达式与Stream API
【4月更文挑战第16天】本文将介绍Java 8中的两个重要新特性:Lambda表达式和Stream API。Lambda表达式是Java 8中引入的一种新的编程语法,它允许我们将函数作为参数传递给其他方法,从而使代码更加简洁、易读。Stream API是Java 8中引入的一种新的数据处理方式,它允许我们以声明式的方式处理数据,从而使代码更加简洁、高效。本文将通过实例代码详细讲解这两个新特性的使用方法和优势。
|
9天前
|
安全 Java API
RESTful API设计与实现:Java后台开发指南
【4月更文挑战第15天】本文介绍了如何使用Java开发RESTful API,重点是Spring Boot框架和Spring MVC。遵循无状态、统一接口、资源标识和JSON数据格式的设计原则,通过创建控制器处理HTTP请求,如示例中的用户管理操作。此外,文章还提及数据绑定、验证、异常处理和跨域支持。最后,提出了版本控制、安全性、文档测试以及限流和缓存的最佳实践,以确保API的稳定、安全和高效。
|
12天前
|
存储 Java 关系型数据库
掌握Java 8 Stream API的艺术:详解流式编程(一)
掌握Java 8 Stream API的艺术:详解流式编程
46 1
|
12天前
|
Java 应用服务中间件 Maven
使用IDEA搭建SpringMVC环境,Maven导入了依赖,但是运行报错 java.lang.ClassNotFoundException
使用IDEA搭建SpringMVC环境,Maven导入了依赖,但是运行报错 java.lang.ClassNotFoundException
11 1
|
21天前
|
前端开发 Java API
构建RESTful API:Java中的RESTful服务开发
【4月更文挑战第3天】本文介绍了在Java环境中构建RESTful API的重要性及方法。遵循REST原则,利用HTTP方法处理资源,实现CRUD操作。在Java中,常用框架如Spring MVC简化了RESTful服务开发,包括定义资源、设计表示层、实现CRUD、考虑安全性、文档和测试。通过Spring MVC示例展示了创建RESTful服务的步骤,强调了其在现代Web服务开发中的关键角色,有助于提升互操作性和用户体验。
构建RESTful API:Java中的RESTful服务开发