首页 > 解决方案 > 使用 socket.io 在 Angular 聊天应用程序中实现“有人在打字……”功能

问题描述

我已将聊天示例的 Web 版本移植到 Angular 6 中。

现在我想实现一个功能,当用户 A 开始实时输入时,用户 B 应该看到“用户 A 正在输入......”消息。当用户 A 停止输入时,消息应该会消失。显然,如果用户 A 自己正在打字,他不应该看到该消息。

关于如何实现这一目标的任何更好的想法?任何意见?

标签: angularwebsocketsocket.io

解决方案


试试这个,它会在按键时发出一个事件,当按键停止时会nottyping在 500 毫秒后发出一个事件以停止显示你输入的消息

var打字=假;

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);
  }

}

推荐阅读