Angular 8-websocket的键入指示器

问题描述 投票:0回答:1

我目前正在Angular 8中进行网络聊天。我已连接到websocket,并且收到有关某人正在键入消息的信息。它被称为“打字指示器”。每当有人向我输入内容时,我都会获得此信息。不幸的是,我没有收到有人停止打字的信息,我需要实现一种逻辑,如果有人停止打字,我将只显示打字指示符4秒钟。

public showTypingIndicator() {
  const currentDate = new Date();
  currentDate.setSeconds(currentDate.getSeconds() - 4);

  return this.lastTypingDate !== null && this.lastTypingDate > currentDate;
}

我的this.lastTypingDate我是从服务中获得的,以防万一我在Websocket中收到了一条类型为“ Typing-indicator”的消息,然后将其设置为this.lastTypingDate = new Date();。这就是我如何通过服务将数据传递到此变量的方法:this.myDateService.getLastTypingDate()

这有效,但是它显示我的打字指示符的时间超过4秒。有什么想法可以在此处进行更改以使其按预期工作?

谢谢你!

angular date typing indicator
1个回答
0
投票

您可以更改showTypingIndicator获取器并以秒为单位比较日期。

public get showTypingIndicator() {
    const currentSeconds = (new Date()).getTime()/1000;
    return this.lastTypingDate !== null && (currentSeconds - (this.lastTypingDate.getTime()/1000)) < 5;
}
© www.soinside.com 2019 - 2024. All rights reserved.