繁体   English   中英

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

所以我是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向所有其他套接字发送消息的内容。

只需执行socket.emit即可

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM