PHP jQuery Chat - 用户正在输入功能

标签 php jquery mysql memcached chat

<分区>

Possible Duplicate:
How to make a real time “User is typing” notice to all in chat

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

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

提前发送

最佳答案

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

那是因为这样的堆栈是无状态,并且无法跟踪用户事件:实际上它可以利用 session 和数据库,但这意味着继续轮询客户端为了检索状态的变化,这意味着:

  • 有没有给我的新消息?
  • 嘿,有没有给我的新消息?
  • 客气一点,如果有什么消息要给我,请告诉我。

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

You can find a live example here .

关于PHP jQuery Chat - 用户正在输入功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12324271/

相关文章:

php - 如何在 PHP 中验证 Paypal webhook 签名?

php - Twig:在将 URL 传递到 Twitter 分享按钮时对其进行了两次编码

python - 内爆列表以在 Python MySQL IN 子句中使用

mysql - 如何在 Mac 上的 virtualenv 上安装 mysqldb

php - 如何简化 Laravel 中的多重搜索?

php - Laravel 4 中的包 Controller

javascript - 更改jsp href元素,c :url

jquery-mobile - jQuery Mobile 中未触发 jQuery 单击事件

jQuery UI 对话框中的 jQuery Validate 远程方法仅有效一次

php - 在 eloquent 中创建不适用于 php