Узел.JS — SocketIO публикует строку только один раз и удаляет ее при остановке рисования

#javascript #node.js #socket.io

#javascript #node.js #socket.io

Вопрос:

Я пытаюсь напечатать имя пользователя пользователя, когда он начинает рисовать на холсте. У меня есть это прямо сейчас, но он будет постоянно печатать имя пользователя пользователя снова и снова. Могу ли я каким-либо образом заставить ее печатать только один раз, а затем после их остановки имя пользователя пользователя будет удалено?

Вот код, который я должен отправить сокету, который рисует пользователь.

 function mouseDragged() {
        if (username == undefined || username == null) {
            alert("Please enter a username before drawing!");
        }
        else {
            fill(255);
            noStroke();
            ellipse(mouseX, mouseY, 20, 20);
            // Send the mouse coordinates
            sendmouse(mouseX, mouseY);
            socket.emit('typing', username);
        }
    }
    function sendmouse(xpos, ypos) {
        //console.log("sendmouse: "   xpos   " "   ypos);
        var data = {
            x: xpos,
            y: ypos
        };

        // Send that object to the socket
        socket.emit('mouse', data);
    }
 

Тогда это код, который отправляет данные из Server.js к розетке

  socket.on('typing', (username) => {
        //console.log(username   "is typing...");
        socket.broadcast.emit('typing', username);
    });
 

Тогда вот код, в котором я печатаю ввод пользователя.

  socket.on('typing', function (username) {
        //Adds username to list if they type!
        console.log("A user is typing!");

        $('#typing').append($('<li>').text(username   "is drawing..."));
        
    }, 1000);
 

Итак, просто чтобы напомнить, я хочу, чтобы имя пользователя пользователя было напечатано — как сейчас. Но я хочу, чтобы она печаталась только один раз, а затем после того, как пользователь остановится, имя пользователя пользователя будет удалено.
Большое вам спасибо, что нашли время, чтобы прочитать это. 🙂