项目运行
npm install
npm run dev
客户端:打开client.html 文件
WebSocket是一种在单个TCP连接上进行全双工通信的协议。
使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。
在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
2. 优点(参考维基)
const ws = new WebSocket('ws://localhost:8888');
ws.onopen = () => {
console.log('WebSocket onopen');
}
ws.onmessage = e => {
console.log('WebSocket onmessage');
console.log('WebSocket message received:', e);
console.log('WebSocket data received:', e.data);
}
ws.onclose = e => {
console.log("WebSocket onclose");
};
- WebSocket.onopen: 连接成功后调用
- WebSocket.onmessage: 当接收到服务器消息时调用
- WebSocket.onclose: 连接关闭后调用
const Koa = require('koa');
const WebSocket = require('ws');
const app = new Koa();
const ws = new WebSocket.Server({port: 8888});
ws.on('connection', ws => {
console.log('server connection');
ws.on('message', msg => {
console.log('server receive msg:', msg);
});
ws.send('Information from the server');
});
app.listen(3000);
服务端
- 握手: 一般创建WebSocket链接, 需要通过浏览器发出请求,服务器做出回应, 这个过程称为“握手”