PHP jQuery聊天-用户正在键入功能


PHP jQuery Chat - user is typing feature

可能重复:
如何实现实时“用户正在键入”通知所有在聊天

我正在开发PHP MySQL jQuery/Ajax聊天,并试图用一些奇特的功能来增强它,比如User正在键入。。。消息

我发现很多主题用户描述了如何发出请求来通知服务器用户正在键入消息,但这并不是问题。下一步我需要帮助:)如何使用服务器将isTyping变量从客户端"切换"到客户端?我想尽量避免存储它,因为它可能会用不必要的数据淹没数据库引擎。有没有办法只使用服务器RAM来做到这一点?这些数据并不重要,因此丢失数据的可能性也不大。Memcached也是一种选择,但最好不要。

Tnx提前

PHP/MySQL在我看来不是开发聊天的合适堆栈。

这是因为这样的堆栈是无状态的,并且不能跟踪用户事件:实际上,它可以利用会话和数据库,但这意味着继续从客户端轮询以检索状态的更改,这意味着:

  • 有新消息给我吗
  • 嘿,有新消息给我吗
  • 请友善一点,如果有什么留言给我,请告诉我

最好的方法是在node.js上使用socket.io:长话短说,在客户端和服务器之间有一个持久的连接[使用WebSockets、长轮询等技术],它变成了应用程序各个方面的事件侦听器的简单设置。

你可以在这里找到一个活生生的例子。