socket.io 不允许 clearInterval 工作

socket.io not allowing clearInterval to work

我想从另一个 socket.emit 函数调用 clearInterval。但是,由于某些原因,它不允许我取消该功能。

io.on("connection", socket => {
    socket.on('compute', message => {
        const intervalID = setInterval(() => computeFunction(message.data, socket, intervalID), 100);
    });
    socket.on('erase', message) => {
        clearInterval(message.id);
    }
 });
 
 computeFunction(data, socket, id) {
    socket.emit('delete', id);
 }

您只发出 ID,当您处理 erase 事件时,您需要一个对象 (message.id)。

尝试在 delete 事件中发射一个对象:

socket.emit('delete', {id}); // send an object {id: [socket id]}

此外,computeFunction 似乎没有使用 data 参数。

希望对您有所帮助。