angular - 使用 socket.io 在 Angular 聊天应用程序中实现“有人在打字……”功能
问题描述
我已将聊天示例的 Web 版本移植到 Angular 6 中。
现在我想实现一个功能,当用户 A 开始实时输入时,用户 B 应该看到“用户 A 正在输入......”消息。当用户 A 停止输入时,消息应该会消失。显然,如果用户 A 自己正在打字,他不应该看到该消息。
关于如何实现这一目标的任何更好的想法?任何意见?
解决方案
试试这个,它会在按键时发出一个事件,当按键停止时会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);
}
}
推荐阅读
- php - 执行编辑操作时出错
- java - 是否可以在基于 JVM 的 DynamoDB 本地实例上创建全局二级索引
- python - 在 Pycharm 中使用模块包
- tsql - SQL Server 日志文件的查询路径 (SSRS / SSAS)
- html - 动态主题离子问题
- angular - NGRX 如果 API 上的数据发生变化?
- javascript - 为什么我不能通过控制器访问范围?
- memory - 存储和加载 2d 无限程序生成的基于瓦片的世界
- ansible - Ansible / Jinja2 获取项目文件管理器
- node.js - Dialogflow 和 heroku Webhook