2013-10-09 33 views
1

当user1从当前在线的用户列表中选择user2并发送消息给用户2。使用php和ajax的聊天应用程序:

user1发送的消息将通过ajax保存在数据库中。

目前我正在使用setInterval方法进行ajax调用,以每5秒从数据库中获取消息。即使用户2没有新消息,Ajax请求也会每5秒钟连续进入服务器。这会增加服务器负载。

是否有任何方法可以更新消息到user2只有当user2得到的消息,这个减少号码请求发送到服务器。

+0

你打扰Google吗?你不会是第一个有这个想法的人。 –

+0

看看[PHP Long Polling](http://stackoverflow.com/questions/333664/simple-long-polling-example-code) – SpYk3HH

回答

1

看看Node.js和socket.io(node.js的插件)。如果你了解JavaScript和PHP的方法,它并不复杂,但它可以让你保持服务器和客户端之间的实时连接,并实时传递数据。它广泛地给出了一个完整的例子,说明这将如何工作,因为一个实现在某种程度上是特定的。有一些与node.js聊天实现的指南。做一些Google搜索,经过几天的研究,我能够实现它。

这应该让你开始:http://net.tutsplus.com/tutorials/javascript-ajax/real-time-chat-with-nodejs-socket-io-and-expressjs/

我最终还是你最初建议到底是什么,但发现它是大大效率低下。我花了一些时间,建立了一个节点服务器,现在用户可以实时互动。