2013-10-09 58 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/

我最終還是你最初建議到底是什麼,但發現它是大大效率低下。我花了一些時間,建立了一個節點服務器,現在用戶可以實時互動。