java WebSocket

WebSocket 概述

Websocket是一个持久化的协议

WebSocket是一种规范,是Html5规范的一部分,websocket解决什么问题呢?解决http协议的一些不足。我们知道,http协议是一种无状态的,基于请求响应模式的协议。

WebSocket API 中浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道,两者或可以直接互相传送数据了

WebSocket 基于TCP双向全双工进行消息传递,在同一时刻,即可以发送消息,也可以接收消息。

HTTP 是半双工协议,性能得到很大提升。

Websocket使用和 HTTP 相同的 TCP 端口,可以绕过大多数防火墙的限制。默认情况下,Websocket协议使用80端口;运行在                         TLS之上时,默认使用443端口。

WebSocket 是独立的、创建在 TCP 上的协议。

Websocket 通过 HTTP/1.1 协议的101状态码进行握手。

 

WebSocket特点

1 单一的TCP连接,采用全双式模式通信

2对代理,防火墙和路由器透明

3无头部信息,Cookie和身份验证

4无安全开销

5 通过“ping/pong”帖保持链路激活

6服务器可以主动传递消息客户端,不再需要客户端轮询

WebSocket 背景

   目前在浏览器中通过HTTP仅能实现单向通信,Comet可以在一定程度上模拟双向通信,但效率较低,并且需要服务器有较好的支持,Flash中的Socket和XMLSocket可以实现真正的双向通信。

WebSocket 生命周期

Java WebSocket API中的WebSocket生命周期

  • 打开事件:此事件发生在端点上建立新连接时并且在任何其他事件发生之前
  • 消息事件:此事件接收WebSocket对话中另一端发送的消息。它可以发生在WebSocket端点接收了打开事件之后且在接收关闭事件关闭连接之前的任意时刻
  • 错误事件:此事件在WebSocket连接或者端点发生错误时产生
  • 关闭事件:此事件表示WebSocket端点的连接或者端点目前正在部分的关闭,它可以由参与连接的任意一个端点发出

WebSocket 连接关闭

    webSocket 的握手关闭消息带有一个状态码和一个可选的关闭原因,它必须按照协议要求发送一个close控制帧,当对端收到关闭帧控制指令时,需要主动关系WebSocket连接

close()方法代表再见握手。它终止连接,除非连接再次打开,否则不能交换任何数据。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值