HTML5 WebSocket介绍与基本使用(解析服务端返回的二进制数据)
// 引入WebSocket模块
const WebSocket = require('ws');
// 创建WebSocket服务器实例,监听端口3000
const wss = new WebSocket.Server({ port: 3000 });
wss.on('connection', function connection(ws) {
// 当服务器接收到客户端消息时
ws.on('message', function incoming(data) {
// 解析接收到的二进制数据
const buffer = Buffer.from(data);
// 假设前4个字节为整数,表示后续数据长度
const lengthBuffer = buffer.slice(0, 4);
const dataLength = lengthBuffer.readInt32BE(0);
// 获取实际数据
const actualData = buffer.slice(4, 4 + dataLength);
// 打印实际数据
console.log(actualData.toString());
// 回复客户端消息,这里仅为示例,实际应用中可能需要根据实际数据内容进行处理
ws.send(JSON.stringify({ message: '收到消息,内容为:' + actualData.toString() }), (error) => {
if (error) {
console.error('发送消息失败', error);
}
});
});
});
console.log('WebSocket服务器运行在 ws://localhost:3000');
这段代码创建了一个WebSocket服务器,监听3000端口。当客户端连接到服务器时,服务器解析接收到的二进制数据,并打印出解析后的字符串信息。然后,服务器向客户端发送一个JSON格式的确认消息。这个例子演示了如何处理和发送二进制数据,并且如何在WebSocket服务器中使用Buffer
对象来处理二进制数据。
评论已关闭