问题是由您的客户端代码引起的。每次在客户端调用
reply()
函数时,都会设置一个额外的
socket.on('Ans', ...)
事件处理程序,这意味着它们会累积。您可以将其更改为
socket.once()
,每次得到
Ans
消息后,它都会自行删除。然后,还可以删除
flag
变量。
代码语言:
javascript
复制
function reply() {
socket.emit('Quest' , Quest);
audio.play();
// change this to .once()
socket.once('Ans', function(replyFromBot) {
console.log("hi");
var para = document.createElement("p2");
x = document.getElementById("MiddleBox");
para.appendChild(document.createTextNode(replyFromBot));
x.appendChild(para);
x.scrollTop = x.scrollHeight;
}