当输入字段中没有发生任何操作时向 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 发送事件的主要内容,如果未能解决你的问题,请参考以下文章