0

可能重复:
如何在聊天中向所有人发出实时“用户正在输入”通知

我正在开发 PHP MySQL jQuery/Ajax 聊天,并试图用一些花哨的功能来增强它,比如用户正在输入...消息

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

提前 Tnx

4

1 回答 1

4

在我看来,PHP/MySQL 不是开发聊天的正确堆栈。

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

  • 有新消息给我吗?
  • 嘿,有新消息给我吗?
  • 好心,告诉我是否有任何消息给我。

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

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

于 2012-09-07T19:39:46.737 回答