Node.js/Sockets-用户连接,它加载以前的消息,但它将消息加载到所有其他聊天用户,而不是刚刚连接的用户

Node.js/Sockets - User connects, it loads previous messages but it loads messages to all other chat users instead of the one that just connected

本文关键字:用户 消息 加载 连接 其他 聊天 js Sockets- Node      更新时间:2023-09-26

所以我是node.js的新手,我正在聊天。基本上我有两个文件:server.js(服务器端)和script.js(客户端)。在服务器端,我放了这个:

在server.js:中

socket.on('previousMessages', function (data){
    db.query("SELECT * FROM messages", function (error, results, fields) {
    for(var i=0;i<results.length;i++){
    var obj = results[i];
            socket.broadcast.emit('message', {
        'message' : "hellow",
        'pseudo' : "arleitiss"
    });
    //console.log("break");
}
    });
    });

在script.js:中

function addMessage(msg, pseudo){
    $("#chatEntries").append('<div class="message"><p>' +
     pseudo + ' : ' + msg + '</p></div>');
}
    socket.on('message', function(data){
        addMessage(data['message'], data['pseudo']);
    });

所以当用户登录,输入他的昵称时,它会从数据库中加载所有以前的消息。然后,它应该只为连接的用户在聊天中加载它们,但它忽略了刚刚连接的用户,并为其他聊天用户加载所有消息。

那么我该如何着手解决这个问题呢?

哦,是的,别介意我还没有使用结果,我只是先使用基本变量进行测试。

在服务器中使用套接字广播。emit向所有OTHER套接字发送消息的内容。

只需执行socket.emit.