聊天服务器并显示用户输入

时间:2015-07-12 16:31:51

标签: php

我正在开发一个小测试项目来为我正在处理的网站实现聊天服务器。我已经按照http://www.sanwebe.com/2013/05/chat-using-websocket-php-socket的指南进行了操作,并且我已经完成了很多工作,我还设法稍微修改它,以便您可以向个人用户发送消息,而不是全局发送到所有用户用户。

我现在正在寻找的是否使用上面教程中显示的实现是否可以显示用户当前正在键入。

我正在考虑寻找关键事件,只是向用户发送系统消息,我可以在客户端处理这个以显示输入,然后如果在一秒之后没有其他任何东西再次隐藏它,但这似乎是有点低效和网络。

上面我的想法是唯一的解决方案还是有更好的实施?

1 个答案:

答案 0 :(得分:3)

这实际上取决于您对"目前正在打字"。

的定义

对我来说,那就是"输入字段中有一些文字"。
这将要求您在输入字段上侦听change事件,并仅在字段从空转为非空或反之时发送消息。
当然,服务器需要发送一个"停止输入"如果用户断开连接,则显示消息。

但是,如果您的定义是"用户在最后X毫秒内触摸了一个键",那么除了不断发送消息之外别无他法。
除了更加网络密集之外,此选项的缺点是滞后显示为断开连接,可能导致UI外观不稳定。

无论哪种方式,我都会在输入字段上收听change,而不是实际按键。