Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node.js/Sockets-用户连接,它加载以前的消息,但将消息加载到所有其他聊天用户,而不是刚刚连接的用户_Javascript_Node.js_Sockets - Fatal编程技术网

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

Javascript Node.js/Sockets-用户连接,它加载以前的消息,但将消息加载到所有其他聊天用户,而不是刚刚连接的用户,javascript,node.js,sockets,Javascript,Node.js,Sockets,所以我是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;

所以我是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");
}
    });
    });
socket.on('previousMessages',函数(数据){
db.query(“从消息中选择*”,函数(错误、结果、字段){
对于(var i=0;i,您在服务器中使用套接字。广播。向所有其他套接字发出消息


只需执行socket.emit。

您正在执行SELECT*FROM消息,我看不到任何where子句,它表示where id in(array\U of\U online\U id)这不是重点,这只是将使用连接之前发布的消息加载到聊天室。这非常有效。我还学到了重要的一点,我认为socket.broadcast.emit与socket.emit相同。因此socket.broadcast.emit适用于所有连接的客户端,socket.emit仅适用于客户端?socket.emit是否可以始终用于解析服务器和客户端之间的变量?emit方法用于通过套接字发送数据。客户端可以在套接字对象上使用emit将数据发送到服务器。但服务器端可以在服务器对象上使用emit将数据发送到所有连接的客户端,或在套接字对象上使用emit将数据发送到连接到此soc的单个客户端ket.“broadcast”是套接字对象上的一个“标志”,用于向除当前套接字之外的所有人广播消息。
function addMessage(msg, pseudo){
    $("#chatEntries").append('<div class="message"><p>' +
     pseudo + ' : ' + msg + '</p></div>');
}

    socket.on('message', function(data){
        addMessage(data['message'], data['pseudo']);
    });