Javascript 如何等待node.js服务器的新信息

Javascript 如何等待node.js服务器的新信息,javascript,node.js,ajax,express,Javascript,Node.js,Ajax,Express,所以我正在做一个小型的聊天大厅项目。但是我在获取人们发送到服务器、返回到客户端并在站点上显示的消息时遇到了问题。它使用这样的循环工作: //客户端 设置间隔(()=>{ 让ajax=newxmlhttprequest() ajax.onreadystatechange=函数(){ if(this.readyState==4&&this.status==200){ serverMessages=JSON.parse(ajax.responseText); if(serverMessages.joi

所以我正在做一个小型的聊天大厅项目。但是我在获取人们发送到服务器、返回到客户端并在站点上显示的消息时遇到了问题。它使用这样的循环工作:

//客户端
设置间隔(()=>{
让ajax=newxmlhttprequest()
ajax.onreadystatechange=函数(){
if(this.readyState==4&&this.status==200){
serverMessages=JSON.parse(ajax.responseText);
if(serverMessages.join(“”)==clientmessages.join(“”){
让newMessages=arrDiff(clientmessages、serverMessages)
clientmessages=serverMessages
newMessages.forEach(msg=>{
chatText.innerHTML+=`
    ${msg.name}:${msg.message}
` }) } } }; open(“GET”,`/message?code=${getUrlParam(“code”)}`,true) ajax.send() }, 100) //服务器端 app.get(“/message)”,(请求、回复)=>{ res.send(lobbies.get(req.query.code).messages) })
然而,这显然是非常糟糕的,如果你开始发送垃圾邮件,或者加入了太多的客户端,它会使服务器过载,导致各种各样的错误


所以我在问,我怎样才能做得更好?或者有没有办法等到服务器获得新信息?

有一个名为“websockets”的协议。您需要使用它而不是HTTP。

尝试使用它而不是ajax/https调用,我认为它会更有效。

您必须使用websocket。研究http WebSocket,例如socket.io库。哦,我明白了。。。谢谢即使您的方法很幼稚,每秒询问服务器10次也不是一个好主意。