我已经移植了网页版的friendlychat Angular 4 套件的示例。你可以看到我的直播over here它似乎工作正常...我将很快将其开源。
现在我想实现一个功能,当用户 A 开始实时打字时,用户 B 应该看到“用户 A 正在打字......”消息。当用户 A 停止输入时,该消息应该消失。显然,如果用户 A 自己正在打字,则他不应该看到该消息。
我正在考虑在数据库中拥有一个对象,如下所示:
{
"isTyping":true,
"fromDeviceToken": "xxxx"
}
...然后使用 firebase realtime 更改 isTyping
字段。
关于如何实现这一目标,有更好的想法吗?有任何意见/改进吗?
我的主要问题是,
Firebase 云可以 pub/sub trigger用于在不将输入状态保留在数据库中的情况下执行此操作。如果是这样,怎么做?
最佳答案
如果用户 A 在打字期间连接丢失,则状态将始终保持 true,直到他恢复连接。要解决此问题,您可以在 firebase 对象中添加一个 DateTime 字段。假设lastTypedCharacter 并存储DateTime 并在用户A 键入任何内容时每秒更新它。当向其他用户 B 显示将 LastTypedCharacter DateTime 与当前时间匹配时,如果它小于 5 秒,那么您可以假设用户 A 不再输入
关于angular - 使用 firebase cloud pub/sub 在聊天应用程序中实现 "Someone is typing..."功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43269778/