WebSocket |青训营笔记

55 阅读2分钟

一、WebSocket简介

WebSocket是HTML5下一种新的协议(websocket协议本质上是一个基于tcp的协议) 它实现了浏览器与服务器全双工通信,能更好的节省服务器资源和带宽并达到实时通讯的目的 Websocket是一个持久化的协议 二、WebSocket原理

websocket约定了一个通信的规范,通过一个握手的机制,客户端和服务器之间能建立一个类似tcp的连接,从而方便它们之间的通信 在websocket出现之前,web交互一般是基于http协议的短连接或者长连接 websocket是一种全新的协议,不属于http无状态协议,协议名为"ws"

三、联系上篇笔记WebSocket与Http的关系

3.1联系

WebSocket在建立握手时,数据是通过HTTP传输的。但是建立之后,在真正传输时候是不需要HTTP协议的

3.2总体过程

首先,客户端发起http请求,经过3次握手后,建立起TCP连接;http请求里存放WebSocket支持的版本号等信息,如:Upgrade、Connection、WebSocket-Version等; 然后,服务器收到客户端的握手请求后,同样采用HTTP协议回馈数据; 最后,客户端收到连接成功的消息后,开始借助于TCP传输信道进行全双工通信。

四、WebSocket改进

一旦WebSocket连接建立后,后续数据都以帧序列的形式传输。在客户端断开WebSocket连接或Server端中断连接前,不需要客户端和服务端重新发起连接请求。在海量并发及客户端与服务器交互负载流量大的情况下,极大的节省了网络带宽资源的消耗,有明显的性能优势,且客户端发送和接受消息是在同一个持久连接上发起,实现了“真·长链接”,实时性优势明显。

五、心得体会

计算机网络在学校的课程里面有一个大作业是完成一个简易的聊天系统,但是是通过C++来完成的。感觉QT来完成并不是一个该系统常用的方式,Java 的前端通过创建WebSocket对象,然后通过addEventListener方法来监听启动服务(open方法)和接受数据(message方法)后端通过引入nodejs-websocket依赖包,通过conn.on方法来监听消息接收,连接关闭及连接异常。其实这个时候就有接触前端的知识了。