java websocket 生存期_Java WebSocket生命周期

本章将讲述WebSocket端点的生命周期。WebSocket端点的生命周期为开发人员提供了一个框架来管理端点所须要的资源,也提供了一个框架来拦截消息。咱们将仔细探讨其生命周期的顺序和语义,以及Java WebSocket API如何提供API和注解来支持处理这些事件。java

1、WebSocket协议node

与基于HTTP的技术不一样,WebSocket具备生命周期。今生命周期周期由WebSocket协议支撑。WebSocket协议定义了客户端和服务器长时间存活的专用的TCP链接,一旦链接已经创建,数据的传输就能够往返传输。WebSocket协议中包含两种主要类型的帧:控制帧和数据帧。控制帧是用于执行协议的一些内部逻辑的数据传输。例如关闭帧(意味着发送者准备关闭链接)、Ping帧(检查WebSocket对等节点的链接的健康性)。Pong帧(对Ping帧作出回应)。数据帧定义了携带应用数据的WebSocket传输的种类。数据帧分为两类:文本型和二进制型(例如,图像数据)。编程

2、WebSocket生命周期服务器

全部Java WebSocket端点生命周期的第一个事件是打开通知,它用来指示到WebSocket会话另外一端的链接已经创建。一旦打开通知被WebSocket对话的两端都接收到,参与的任意WebSocket后续就能够发送消息了。在WebSocket对话期间,可能会出现一些消息传递的错误。接受消息的WebSocket端点自己就可能产生错误,或者WebSocket实现自己在某些状况下也会产生错误。要注意对错误的处理。无论在WebSocket对话的哪一端准备结束对话,他均可以初始化关闭事件。下面从Java组件的视角来看看其生命周期如何呈现。框架

打开事件:@OnOpen 此事件发生在端点上创建新链接时而且在任何其余事件发生以前异步

消息事件:@OnMessage 此事件接收WebSocket对话中另外一端发送的消息。spa

错误事件:@OnError 此事件在WebSocket链接或者端点发生错误时产生code

关闭事件:@OnClose 此事件表示WebSocket端点的链接目前部分地关闭,它能够由参与链接的任意一个端点发出对象

你可能已经注意到,我用注解式来讲明端点事件处理,这正是WebSocket所推荐的。虽然,你也能够用继承式来编程这些事件继承

@OnOpen 指示当此端点创建新的链接时调用此方法。此事件伴随着三部分信息:WebSocket Session对象,用于表示已经创建好的链接;配置对象(EndpointConfig的实例),包含了用来配置端点的信息;一组路径参数,用于打开阶段握手时WebSocket端点入站匹配URI。@OnOpen注解的方法是没有任何返回值的公有方法,这些方法有一个可选的Session参数、一个可选的EndpointConfig参数,以及任意数量的被@PathParam注解的String参数。

@OnMessage 处理入站的消息。

@OnError 能够处理WebSocket实现处理入站消息时发生的任何异常。处理入站消息时,可能会发生3中基本的错误类型。首先,WebSocket实现产生的错误可能会发生,这些异常属于SessionException类型,其次,错误可能会发生在当WebSocket实现试图将入站消息解码成开发人员所须要的对象时。此类错误都是DecodeException类型。最后是由WebSocket端点的其余方法产生的运行时错误。WebSocket实现将记录WebSocket端点操做过程当中产生的任何异常。

@OnClose 它对于在WebSocket链接关闭时作其余的通用清理工做。@OnClose 能够用来注解多种不一样类型的方法来关闭事件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值