<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Websocket demo</title>
</head>
<body>
<dl>
<dt>参考文档</dt>
<dd><a href="http://www.ruanyifeng.com/blog/2017/05/websocket.html" target="_blank">WebSocket 教程 - 阮一峰</a></dd>
<dd><a href="https://developer.mozilla.org/en-US/docs/Web/API/WebSocket" target="_blank">WebSocket参考文档</a></dd>
<dd><a href="https://github.com/joewalnes/websocketd" target="_blank">WebSocket 服务器 - websocketd(后台脚本不限语言)</a></dd>
<dd><a href="https://github.com/joewalnes/websocketd/tree/master/examples" target="_blank">WebSocket 服务器 - websocketd(examples)</a></dd>
<dd><a href="https://github.com/joewalnes/web-vmstats" target="_blank">WebSocket 浏览器实时展示服务器状态的案例(for Linux)</a></dd>
</dl>
<script>
// 1.创建 WebSocket 对象
var socket = new WebSocket("wss://echo.websocket.org");
console.log(socket.readyState) //0 - 连接尚未建立
//2.连接打开时触发
socket.onopen = function (event) {
console.log(socket.readyState) //1 - 连接已建立,可以进行通信
// 向服务器发送数据的方法(将要发送的数据放入队列)
socket.send("Hello WebSockets!");
console.log('队列中等待传输的 UTF-8 文本字节数', socket.bufferedAmount) //队列中等待传输的 UTF-8 文本字节数。
};
//3.客户端接收服务端数据时触发
socket.onmessage = function (event) {
// 接收服务器返回的数据
console.log("Received Message: " + event.data);
// 关闭连接的方法
socket.close();
console.log(socket.readyState) //2 - 连接正在关闭
};
//4.通信发生错误时触发
socket.onerror = function (event) {
console.log(socket.readyState) //3 - 连接已经关闭
};
//5.连接关闭时触发
socket.onclose = function (event) {
console.log(socket.readyState) //3 - 连接已经关闭
};
</script>
</body>
</html>