序言:看了阮一峰老师的WebSocket教程,对WebSocket有了一定的理解,理论很重要,实践也不能少,所以在此记录WebSocket的简单使用案例。
WebSocket服务器代码(Node.js):
const WebSocket = require('ws');
// 创建WebSocket服务器
const wss = new WebSocket.Server({ port: 8080 });
// 监听连接事件
wss.on('connection', (ws) => {
console.log('Client connected');
// 监听消息事件
ws.on('message', (message) => {
console.log(`Received message: ${message}`);
ws.send(`Server received: ${message}`);
});
// 监听断开连接事件
ws.on('close', () => {
console.log('Client disconnected');
});
});
WebSocket客户端代码(浏览器中的JavaScript):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
const socket = new WebSocket('ws://localhost:8080');
// 监听连接打开事件
socket.addEventListener('open', (event) => {
console.log('Connected to server');
});
// 监听消息事件
socket.addEventListener('message', (event) => {
console.log(`Received from server: ${event.data}`);
});
// 监听连接关闭事件
socket.addEventListener('close', (event) => {
console.log('Disconnected from server');
});
// 发送消息
function sendMessage() {
const message = prompt('Enter a message:');
socket.send(message);
}
</script>
</body>
</html>
在这个示例中,WebSocket服务器使用Node.js的ws库来创建,并在连接、消息和关闭事件上进行了监听。WebSocket客户端则是在浏览器中运行的JavaScript代码,通过WebSocket连接到服务器,监听连接、消息和关闭事件,以及通过send方法发送消息。
需要注意的是,WebSocket客户端在浏览器环境中运行,所以不需要安装任何额外的库。WebSocket服务器使用了Node.js的ws库来简化WebSocket服务器的创建和管理。
运行方式
步骤 1:运行WebSocket服务器
node server.js
步骤 2:运行WebSocket客户端
通过浏览器打开client.html即可
步骤 3:测试
查看控制台打印,并且可以通过浏览器控制台调用sendMessage()方法向服务器发送消息。