当 user1 从当前在线的用户列表中选择 user2 时,向 users2 发送消息。
user1发送的消息将通过ajax保存在数据库中。
目前,我正在使用 setInterval 方法进行 ajax 调用,以每 5 秒从数据库获取消息。即使 user2 没有新消息,ajax 请求也会每 5 秒连续发送到服务器。这增加了服务器负载。
只有当 user2 收到消息时,有没有办法将消息更新到 user2,这减少了发送到服务器的数量请求。
看看 Node.js 和 socket.io(node.js 的插件)。如果您熟悉 JavaScript 和 PHP,它并不复杂,但它允许您在服务器和客户端之间保持实时连接并实时来回传递数据。给出一个完整的例子来说明它是如何工作的,因为它的实现在某种程度上是特定于应用程序的。有一些关于使用 node.js 实现聊天的指南。做一些谷歌搜索,经过几天的研究,我能够实现它。
这应该让你开始: http: //net.tutsplus.com/tutorials/javascript-ajax/real-time-chat-with-nodejs-socket-io-and-expressjs/
我最终完全按照您最初的建议做了,但发现它的效率非常低。我花了一些时间设置了一个节点服务器,现在用户可以实时交互了。