// server.js import express from 'express'; const app = express(); import http from 'http'; import { Server } from 'socket.io'; // const http = require('http').createServer(app); const httpServer = http.createServer(app); const io = new Server(httpServer); // 提供静态网页 app.use(express.static('public')); // 3D 数据生成逻辑 function generate3DData() { return { vertices: [ /* 3D 顶点数据 */ ], colors: [ /* 颜色数据 */ ], }; } function generate3DData2() { // 创建一个包含 1000 个随机点的数组 const points: any = []; for (let i = 0; i < 1000; i++) { points.push([Math.random() * 2000 - 1000, Math.random() * 2000 - 1000, Math.random() * 2000 - 1000]); } return { vertices: points, colors: points.map(() => [1, 1, 1, 1]), }; } // WebSocket 通信 io.on('connection', (socket) => { console.log('客户端已连接'); // 每帧发送数据 (60fps) // const interval = setInterval(() => { // socket.emit('frame', generate3DData()); // }, 16); const interval = setInterval(() => { socket.emit('frame', generate3DData()); }, 2000); socket.on('disconnect', () => { clearInterval(interval); }); }); httpServer.listen(3003, () => { console.log('服务已启动: http://localhost:3003'); });