第七章、WebSocket Java EE环境

7.1 Java EE 环境

  • 在Java EE 平台上支持时,还需要一些其他要求来支持websocket应用程序。

7.1.1、Websocket端点和依赖注入

  • 在Java EE 平台上运行的WebSocket端点必须具有CDI规范,参考附录[7]中所述的完全依赖项注入支持。要求Java EE 平台的Websocket实例部分支持使用javax.inject的字段,方法和构造函数注入。将注解注入所有websocket端点类,以及将拦截器用于这些类。[WSC-7.1.1-1]在Java EE平台规范参考附录[8]的EE.5.2.5节中列出了此要求的详细信息,有关满足要求的实现的有用的指南在本节中的位置(EE 5.24)

7.2、与Http会话和身份验证状态的关系

  • 对于将websocket服务器节点嵌入到较大的web应用程序中的开发人员来说,通常能够在每个客户端(例如,JSP,JSF,Servlet)的web资源和为该客户端提供服务的websocket端点之间共享信息,由于websocket连接是通过HTTP请求启动的,因此客户端在其下运行的HttpSession之间存在关联,该API允许在开放式握手中访问与该客户端对应的唯一的HttpSession.[WSC-7.2-1]
  • 同样,如果打开握手请求已通过服务器验证,则打开握手API允许开放人员查询请求的用户Principal,如果与请求客户端建立了连接,则websocket实现会将关联的websocket会话的用户的Principal视为打开握手中存在的用户Principal。[WSC-7.2-2]
  • 如果websocket端点是web应用程序中的受保护资源(请参阅第8章),也就是说,需要授权用户访问它,则websocket实施必须确保websocket端点不保持与其连接的状态,在基础实现已确定经过身份验证的身份不在有效之后,对等方将不再有效,[WSC-7.2-3]例如,如果用户从包含的web应用程序中注销,或验证超时或由于其他原因而无效,则可能会发生这种情况。在这种情况下,websocket必须马上断开连接,同时使用websocket状态码为1008.[WSC-7.2-3]
  • 另一方面,如果websocket端点不是web应用程序中的受保护资源,则在websocket操作期间,打开握手建立连接锁依据的用户身份可能变得无效或更改了,而websocket实施无需关闭连接。

附录

  1. [1] I. Fette and A. Melnikov. RFC 6455: The WebSocket Protocol. RFC, IETF, December 2011. See http://www.ietf.org/rfc/rfc6455.txt.
  2. [2] Ian Hickson. The WebSocket API. Note, W3C, December 2012. See http://dev.w3.org/html5/websockets/.
  3. [3] S. Bradner. RFC 2119: Keywords for use in RFCs to Indicate Requirement Levels. RFC, IETF, March 1997. See http://www.ietf.org/rfc/rfc2119.txt.
  4. [4] Danny Coward. Java API for WebSocket. JSR, JCP, 2013. See http://jcp.org/en/jsr/detail?id=356.
  5. [5] Expert group mailing list archive. Web site. See http://java.net/projects/websocket-spec/lists/jsr356-experts/archive.
  6. [6] J. Gregorio, R. Fielding, M. Hadley, M. Nottingham, and D. Orchard. RFC 6570: URI Template. RFC, IETF, March 2012. See http://www.ietf.org/rfc/rfc6570.txt.
  7. [7] Pete Muir. Contexts and Dependency Injection for Java EE. JSR, JCP, 2013. See http://jcp.org/en/jsr/detail?id=347.
  8. [8] Linda DeMichiel and Bill Shannon. Java Platform, Enterprise Edition 7 (Java EE 7) Specification. JSR, JCP, 2013. See http://jcp.org/en/jsr/detail?id=342.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值