gpt4 book ai didi

javascript - Socket.io 聊天服务器

转载 作者:行者123 更新时间:2023-11-29 15:55:57 25 4
gpt4 key购买 nike

我使用 javascript 和 nodejs 创建了一个聊天服务器。一切似乎都正常,但当我发送消息时,第一条消息显示一次,然后第二条消息显示两次,依此类推。

我在 Linux 上试过,然后在 Windows 机器上试过,甚至在我的 iPad 上试过。它显示相同的结果。我也在客户端进入柜台,结果是(对于每条消息):消息 1:1消息 2:2 1个消息 3:3 2个 1个消息 4:4 3个 2个 1

客户端

   send.addEventListener('click', event => {
event.preventDefault();
const msg = document.querySelector('#msg').value;
document.querySelector('#msg').innerHTML = "";
let packet = {
username: userProfile.username,
message: msg
};
let i = 0;
socket.emit('chat', packet);
socket.on('chat', (data) => {
i=i+1;
console.log(i);
chatBox.innerHTML += `<p><strong>${data.username}:</strong> ${data. message}</p>`;
});
});
});

服务器

   let stat = search(profile);
if(stat.status === "failure")
{
user.push(profile);
io.sockets.emit('login', {status: "failure"});
}
else
{
io.sockets.emit('login', {status: "success"});
}
});

let i = 0;
socket.on('chat', data =>
{
i++;
io.sockets.emit('chat', data);
console.log(i);
});
});

我期待消息显示在聊天框上。它显示消息,但每条消息显示两次或三次。

最佳答案

您正在为每个点击事件创建套接字监听器,这就是显示计数增加的原因。

关于javascript - Socket.io 聊天服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57941631/

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