2012-06-06 65 views
2

我正在開發一種網站聊天,我無法想象如何啓動它,例如,當我使用Facebook聊天時,我可以看到即使我使用兩種不同的瀏覽器,這兩個命令也可以使用。如果我使用一個瀏覽器離線,我可以看到另一個也離線。如何使用PHP,HTML,jQuery執行實時操作

還有一件事,當我發送信息的時候,另一邊的人會怎麼知道?

P.S .:我知道提到的編程語言,我只需要知道聊天如何實時工作(不是代碼,而是想法)。

+0

從[此問題]開始(http://stackoverflow.com/questions/333664/simple-long-polling-example-code)。 – Blazemonger

回答

3

爲了有像Facebook這樣的實時聊天功能,您的服務器需要將數據「推送」到瀏覽器,而Ajax是一種「輪詢」技術。

我使用APE Push Engine,但你也可以使用Socket.IO客戶端,和Node.js服務器端或Comet。說實話,如果我可以回去的話,我會選擇Socket.IO或者Comet路線,因爲它擁有更大的社區/更好的文檔。

+0

就是這樣......我已經測試了聊天(APE推動引擎),這就是我正在尋找的......很棒...... – Foreba

0

選項包括:

  • 找到它支持堵在服務器上連接一個庫,那麼服務器會返回一個答案時有數據
  • 調查
  • 「老辦法」,即。得到一個不斷增長的文件,並使用它來傳輸數據。
0

你必須在服務器上有一個主數據庫和一個PHP腳本。您使用jQuery使用AJAX調用更新瀏覽器輸出。

+0

你不覺得它會要求我的MySQL服務器嗎?例如,如果我有很多用戶同時訪問聊天,腳本會更新5到5秒。我正在考慮一些只能在最後一條新消息的基礎上才能收到消息的東西。 – Foreba

+0

有一些方法可以緩存MySQL端和PHP端的輸出。然而,MySQL數據庫應該能夠花費很多,當你的服務真的很大時,你可以使用雲服務器。只要在開始時確保你不要選擇數據庫超載的最便宜的主機。更好的是使用你自己的服務器,所以沒有人吃掉了性能。你也可以玩刷新間隔。 5秒鐘應該是合理的...... –

2

您可以嘗試使用名爲Comet的技術。

有一些插件將它整合到jQuery中(如this?),但我只聽說過它們。

1

PHP不是正確的工具。你需要在不同線程中處理不同請求的東西。我曾經使用過Node.js進行這種工作。見this教程。

相關問題