当输入字段中没有发生任何操作时向 websocket 发送事件

Posted

技术标签:

【中文标题】当输入字段中没有发生任何操作时向 websocket 发送事件【英文标题】:Send event to websocket when NO action occurred in input field 【发布时间】:2021-05-20 10:52:01 【问题描述】:

我想实现一个功能来检查是否有人在网络聊天应用程序中输入(或不输入)。因此,当有人打字时,我可以使用此功能发送事件:

ngAfterViewInit(): void 
fromEvent(this.inputText.nativeElement, 'input')
  .pipe(debounceTime(500))
  .subscribe(result => 
  this.messageBroker.sendTypingNotification(new MessageModel(null, this.author, MessageType.USER_TYPING));
)

但是当输入字段中没有操作(打字)时如何发送事件?

【问题讨论】:

处理服务器端可能更好? 【参考方案1】:

我找到了解决办法。延迟1秒的keyDown事件发生后,我发送通知。

fromEvent(this.inputText.nativeElement, 'keydown')
  .pipe(
    debounceTime(1000),
    distinctUntilChanged(),
  ).subscribe(() => 
    this.messageBroker.sendTypingNotification(new MessageModel(null, this.author, MessageType.USER_TYPING));
  );

【讨论】:

以上是关于当输入字段中没有发生任何操作时向 websocket 发送事件的主要内容,如果未能解决你的问题,请参考以下文章

当输入文件上的字段为空时,XSLT 2.0 如何跳过写入元素

操作栏隐藏且不回来

关注表单时如何更改表单中输入标签的颜色? [复制]

使用 for 循环时向 JButton 添加操作

角材料自动完成不起作用,没有显示错误

如果没有输入任何内容,Word遗留文本表单字段的值是多少?