Node.js+html5实现WebSocket服务示例
// Node.js 服务器端代码
const WebSocket = require('ws');
// 初始化 WebSocket 服务器实例
const wss = new WebSocket.Server({ port: 8080 });
wss.on('connection', function connection(ws) {
// 当客户端连接时执行
ws.on('message', function incoming(message) {
// 当服务器接收到客户端发来的消息时执行
console.log('received: %s', message);
});
// 发送消息到客户端
ws.send('something');
});
// 确保服务器在没有连接的情况下退出
wss.on('close', function() {
console.log('WebSocket服务已关闭');
process.exit(0);
});
// 客户端 HTML 代码
<!DOCTYPE html>
<html>
<head>
<title>WebSocket 客户端</title>
</head>
<body>
<script>
// 初始化 WebSocket 实例
const ws = new WebSocket('ws://localhost:8080');
// 当 WebSocket 连接打开时执行
ws.onopen = function(event) {
console.log('WebSocket 连接已打开');
// 发送消息到服务器
ws.send('something');
};
// 当接收到服务器发送的消息时执行
ws.onmessage = function(event) {
console.log('received: %s', event.data);
};
// 当 WebSocket 连接关闭时执行
ws.onclose = function(event) {
console.log('WebSocket 连接已关闭');
};
// 当 ctrl+c 关闭程序时,关闭 WebSocket 连接
process.on('SIGINT', function() {
console.log('关闭 WebSocket 连接');
ws.close();
});
</script>
</body>
</html>
这段代码展示了如何在Node.js服务器和HTML5客户端之间建立WebSocket连接,并在连接中发送和接收消息。服务器端使用了ws
模块,而客户端使用了浏览器内置的WebSocket
对象。代码中包含了错误处理和退出逻辑,确保了在没有活跃连接时正常关闭服务器。
评论已关闭