在套接字发出的数据中引入延迟

时间:2019-06-17 15:14:54

标签: node.js sockets

我建立了套接字连接,其中在FrontEnd中有一个图形。该图根据用户提供的输入进行更新。在后端,我正在发射数据(发送到前端的数据数组)。是否可以在套接字发出的数组的每个值之间引入延迟?

我曾尝试将代码放入setInterval函数中,但很快我意识到自己的愚蠢之处。我对如何进行一无所知。

io.sockets.on('connection', (socket) => {
    console.log(`new connection id: ${socket.id}`);
    socket.emit('test event', 'data is getting generated');
    //sendData(socket);
    socket.on('test', data => {
        console.log("DATA ", data);
        let start = data.start_val;
        const arr = [];
        while (start <= data.end_val) {
            arr.push(start);
            start = start + data.interval;
        }
        model.data.create({
            startvalue: data.start_val,
            endvalue: data.end_val,
            difference: data.interval

        });
        socket.emit('response', arr);
    });

})

我正在向后端Start_val,end_val和差分发送3个值。这些值用于生成数据。例如-输入:-start_val = 10,end_val = 30,差分=30。然后发送回的数组为[10,20,30]。现在我想知道是否可以在数组的每个值之间提供1秒的时间延迟。即10应该在第一秒到达,20应该在第二秒到达,依此类推。任何帮助深表感谢。

1 个答案:

答案 0 :(得分:0)

如何遍历数据并使用setTimeout函数来增加每次迭代的延迟:

INFORMATION_BIT

您一次只能发送回一个号码。在这里,我们将发送回[10] ...,因此在客户端上,您将需要处理如何接收该数据并将其推入用于图形的数组中,或者将其推送到发送后读取该数据的内容。

另一种可能性是在此应用程序的客户端引入此延迟。