gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 11:38:45 27 4
gpt4 key购买 nike

所以我是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']);
});

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

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

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

最佳答案

在您的服务器中,您使用socket.broadcast.emit向所有OTHER套接字发送消息。

只需执行socket.emit即可。

关于javascript - Node.js/Sockets - 用户连接时,它会加载之前的消息,但会将消息加载到所有其他聊天用户,而不是刚刚连接的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26363719/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com