WebSocket
介绍
WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。
WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
主要用于代替 Ajax 轮询。节省服务器资源和带宽,进行实时通讯。
使用
构造函数
1
| new WebSocket(url[, protocols])
|
- url:目标 WebSocket 服务器的连接地址。该 URL 必须使用以下方案之一:ws、wss、http 或 https,且不得包含 URL 片段。如果提供的是相对 URL,则其相对于调用脚本的基础 URL。
- protocols: 可选,一个协议字符串或者一个包含协议字符串的数组。这些字符串用于指定子协议。
属性
| 项 |
介绍 |
| WebSocket.onclose |
用于指定连接关闭后的回调函数。 |
| WebSocket.onerror |
用于指定连接失败后的回调函数。 |
| WebSocket.onmessage |
用于指定当从服务器接受到信息时的回调函数。 |
| WebSocket.onopen |
用于指定连接成功后的回调函数。 |
| WebSocket.protocol |
只读,服务器选择的下属协议。 |
| WebSocket.readyState |
只读,当前的链接状态。 |
| WebSocket.url |
只读,WebSocket 的绝对路径。 |
方法
| 项 |
介绍 |
| WebSocket.close([code[, reason]]) |
关闭当前链接。code:可选,默认1005,数字状态码,连接关闭的原因。 reason:可选,字符串,连接关闭的原因。不能超过 123 个字节。 |
| WebSocket.send(data) |
对要传输的数据进行排队。data:用于传输至服务器的数据。 |
事件
使用 addEventListener() 或将一个事件监听器赋值给本接口的 oneventname 属性,来监听下面的事件。
| 项 |
介绍 |
| close |
连接被关闭。 |
| error |
连接因错误而关闭,例如无法发送数据时。 |
| message |
收到数据时触发。 |
| open |
连接成功时触发。 |
示例
1 2 3 4 5 6 7 8 9 10 11 12
| const socket = new WebSocket("ws://localhost:8080");
socket.addEventListener("open", function (event) { socket.send("Hello Server!"); });
socket.addEventListener("message", function (event) { console.log("Message from server ", event.data); });
|
参考资料
Mwd WebAPI-WebSocket
菜鸟 WebSocket
关于本人
HaiYao的博客
Git主页