CentOS如何配置WebSocket服务

WebSocket简介
WebSocket是一种网络通信协议,允许服务器和客户端之间建立一个持久的连接,实现全双工通信,相比传统的HTTP协议,WebSocket具有实时性、低延迟、双向通信等特点,广泛应用于实时聊天、在线游戏、物联网等领域。
CentOS安装WebSocket服务器
安装Node.js
WebSocket服务器通常使用Node.js编写,因此首先需要安装Node.js,以下是在CentOS上安装Node.js的步骤:
# 安装Node.js的依赖 sudo yum install -y gcc-c++ make # 安装Node.js sudo yum install -y nodejs # 验证Node.js版本 node -v
安装WebSocket库
需要安装一个WebSocket库,如ws,可以使用npm(Node.js的包管理器)来安装:

# 安装ws库 npm install ws
编写WebSocket服务器代码
创建一个名为websocket-server.js的文件,并编写以下代码:
const WebSocket = require('ws');
// 创建WebSocket服务器实例
const wss = new WebSocket.Server({ port: 8080 });
// 监听客户端连接事件
wss.on('connection', function connection(ws) {
console.log('Client connected');
// 监听客户端发送的消息
ws.on('message', function incoming(message) {
console.log('received: %s', message);
// 向客户端发送消息
ws.send(`Echo: ${message}`);
});
// 监听客户端断开连接事件
ws.on('close', function close() {
console.log('Client disconnected');
});
}); 启动WebSocket服务器
在终端中运行以下命令启动WebSocket服务器:
node websocket-server.js
WebSocket服务器已启动,监听8080端口。
客户端连接WebSocket服务器
可以使用任何支持WebSocket的客户端工具连接到服务器,以下是一个简单的HTML页面,使用JavaScript连接WebSocket服务器:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">WebSocket Client</title>
</head>
<body>
<input type="text" id="message" placeholder="Enter message">
<button onclick="sendMessage()">Send</button>
<div id="messages"></div>
<script>
const ws = new WebSocket('ws://localhost:8080');
ws.onopen = function() {
console.log('Connected to server');
};
ws.onmessage = function(event) {
const messagesDiv = document.getElementById('messages');
messagesDiv.innerHTML += `<p>${event.data}</p>`;
};
ws.onerror = function(error) {
console.error('WebSocket error:', error);
};
ws.onclose = function() {
console.log('Disconnected from server');
};
function sendMessage() {
const message = document.getElementById('message').value;
ws.send(message);
document.getElementById('message').value = '';
}
</script>
</body>
</html> 将上述代码保存为index.html,并在浏览器中打开该文件,在输入框中输入消息并点击“Send”按钮,可以看到消息被发送到服务器,并在页面上显示回显消息。
FAQs
Q1:如何测试WebSocket服务器是否正常运行?
A1:在浏览器中打开http://localhost:8080,如果能看到WebSocket客户端的界面,说明服务器已正常运行。
Q2:如何处理WebSocket服务器的错误?
A2:在WebSocket服务器的代码中,可以添加错误处理逻辑,
wss.on('error', function error(err) {
console.error('WebSocket server error:', err);
}); 
