1. websocket是什么?
它是一种网络通信协议,是HTML5开始提供的一种在单个TCP连接上进行全双工通讯的协议。
2. 有了HTTP协议为什么还需要websocket?
- 因为HTTP协议有缺陷:通信只能由客户端发起
- 轮询效率低,非常浪费资源。因为必须不断连接
3. websocket介绍
- websocket允许服务端主动向客户端推送数据,
- 只需要完成一次握手就直接可以创建持久性的连接,并进行双向数据传输。
- WebSocket协议基于TCP协议实现
- 协议标识符是ws(如果加密,则为wss),服务器网址就是 URL。

4. 基本使用
- 创建WebSocket实例
var ws = new WebSocket('ws://localhost:8080');客户端就会与服务器进行连接
- WebSocket属性
属性 | 值 | 说明 |
---|
CONNECTING | 0 | 正在连接 |
OPEN | 1 | 连接成功,可以通信了。 |
CLOSING | 2 | 连接正在关闭。 |
CLOSED | 3 | 连接已经关闭,或者打开连接失败 |
- ws.bufferedAmount
只读属性 bufferedAmount 已被 send() 放入正在队列中等待传输,但是还没有发出的 UTF-8 文本字节数。
- WebSocket 事件
事件 | 事件处理程 | 描述 |
---|
open | ws.onopen | 连接建立时触发 |
message | ws.onmessage | 客户端接收服务端数据时触发。 |
error | ws.onerror | 通信发生错误时触发。 |
close | ws.onclose | 连接关闭时触发 |
- WebSocket 方法
方法 | 事件处理程 |
---|
ws.send() | 使用连接发送数据 |
ws.close() | 关闭链接 |