MST

星途 面试题库

面试题:Node.js中如何实现TCP Socket连接并在IoT设备应用场景下处理简单数据传输

在Node.js中,假设你要为一个IoT传感器设备建立TCP Socket连接,该传感器每隔一段时间发送温度数据。请编写Node.js代码实现服务器端接收这些温度数据并进行简单的平均值计算,每接收10个数据输出一次平均值。
45.6万 热度难度
前端开发Node.js

知识考点

AI 面试

面试题答案

一键面试
const net = require('net');

const server = net.createServer((socket) => {
    let dataBuffer = '';
    let temperatureCount = 0;
    let totalTemperature = 0;

    socket.on('data', (data) => {
        dataBuffer += data.toString();
        const lines = dataBuffer.split('\n');
        dataBuffer = lines.pop();

        lines.forEach((line) => {
            const temperature = parseFloat(line);
            if (!isNaN(temperature)) {
                totalTemperature += temperature;
                temperatureCount++;

                if (temperatureCount === 10) {
                    const averageTemperature = totalTemperature / temperatureCount;
                    console.log(`Average Temperature: ${averageTemperature}`);
                    temperatureCount = 0;
                    totalTemperature = 0;
                }
            }
        });
    });

    socket.on('end', () => {
        if (temperatureCount > 0) {
            const averageTemperature = totalTemperature / temperatureCount;
            console.log(`Final Average Temperature: ${averageTemperature}`);
        }
    });
});

const port = 3000;
server.listen(port, () => {
    console.log(`Server listening on port ${port}`);
});