Javascript Socket.io聊天服务器
我已经使用javascript和nodejs创建了一个聊天服务器。一切似乎都很正常,但当我发送消息时,第一条消息显示一次,第二条消息显示两次,以此类推 我在Linux上试过,然后在Windows机器上试过,甚至在我的iPad上试过。它显示了同样的结果。我也在客户端输入了计数器,结果是(对于每条消息): 信息1:1 信息2:2 1. 信息3:3 2. 1. 信息4:4 3. 2. 一, 客户Javascript Socket.io聊天服务器,javascript,node.js,socket.io,Javascript,Node.js,Socket.io,我已经使用javascript和nodejs创建了一个聊天服务器。一切似乎都很正常,但当我发送消息时,第一条消息显示一次,第二条消息显示两次,以此类推 我在Linux上试过,然后在Windows机器上试过,甚至在我的iPad上试过。它显示了同样的结果。我也在客户端输入了计数器,结果是(对于每条消息): 信息1:1 信息2:2 1. 信息3:3 2. 1. 信息4:4 3. 2. 一, 客户 我希望聊天框上会显示这些消息。它会显示消息,但每个消息会显示两到三次。您在每个单击事件上都会创建套接字侦听
我希望聊天框上会显示这些消息。它会显示消息,但每个消息会显示两到三次。您在每个单击事件上都会创建套接字侦听器,这就是显示计数增加的原因 每次处理单击时,您都在添加另一个
套接字。在('chat',
侦听器上-将套接字放在('chat',(数据)
代码之外的发送。addEventListener('click',event=>{
句柄是的,它现在似乎正在工作。非常感谢。。。。。。
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);
});
});