Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – Socket.io如何检查用户是否正在键入并将其广播给其他用户大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试设置socket.io聊天服务器.我已经把它从服务器和客户端发送和接收消息了.如果有人打字,我有兴趣向用户展示.我知道当一些人从客户端输入到服务器时我可以发出声音,我也可以将其广播给其他用户.但是,在每个密钥上执行此操作会有效吗?我该如何处理这种情况?以下是我现在的代码

$("#textBox").keyup(function (E)  {
 if (e.keyCode == 13)  {
  socket.emit('send',{nickname: $('#nickname').val(),msg: $("#textBox").val()});
      $('#textBox').val('');  }
 else{
  socket.emit('is typing',{nickname: $('#nickname').val()});
     }
});

在服务器端:

socket.on('is typing',function(data){
 socket.broadcast.emit('typing',{nickname: data.nicknamE});
});

解决方法

您可以使用超时发送“已开始输入”和“已停止输入”消息,如下所示:

var typing = false;
var timeout = undefined;

function timeoutFunction(){
  typing = false;
  socket.emit(noLongerTypingmessagE);
}

function onKeyDownNotEnter(){
  if(typing == falsE) {
    typing = true
    socket.emit(typingmessagE);
    timeout = setTimeout(timeoutFunction,5000);
  } else {
    clearTimeout(timeout);
    timeout = setTimeout(timeoutFunction,5000);
  }

}

这很糟糕,但你应该明白这个想法.

大佬总结

以上是大佬教程为你收集整理的node.js – Socket.io如何检查用户是否正在键入并将其广播给其他用户全部内容,希望文章能够帮你解决node.js – Socket.io如何检查用户是否正在键入并将其广播给其他用户所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。