使用socket.io在角度聊天应用程序中实现“有人正在键入…”功能

时间:2019-01-17 06:28:53

标签: angular websocket socket.io

我已经将聊天示例的网络版本移植到了角度6中。

现在,我想实现一种功能,以便当用户A开始键入然后实时输入时,用户B应该看到“用户A正在键入...”消息。并且当用户A停止键入时,该消息应消失。显然,如果用户A自己正在键入,则他应该不会看到该消息。

关于如何实现此目标的任何更好的主意?有任何评论吗?

1 个答案:

答案 0 :(得分:0)

尝试此操作,它会在按键时发出一个事件,并且在按键停止后500毫秒后会发出一个nottyping事件,以停止显示您的键入消息

var类型= false;

function typingstopped(){
  typing = false;
  socket.emit(notTyping);
}

function onKeyDown(){
  if(typing == false) {
    typing = true
    socket.emit(typing);
    time = setTimeout(typingstopped, 500);
  } else {
    clear(time);
    time = setTimeout(typingstopped, 500);
  }

}