2012-01-07 31 views
0

所以我已經搜查高和低,這和什麼也沒發現我真的可以使用... 我在網站上工作,主要是基於PHP的,我想提出一個問題客艙的功能存在。我們的會員已經登錄了不同的頁面,如果聊天室會拉取該會話,而不是要求另一個登錄或任何其他內容,那就太棒了。PHP客艙與現有用戶會話

而且,我想根據成員的規範來實現不同chatboxes(預定義的組可以聊天彼此,由數據庫條目定義)

如果它也可能是PHP的,這將是驚人的!我已經嘗試了一定的客艙,但它似乎沒有工作...

我還在學習,我喜歡它,是用圖像和背景等...任何幫助和指導,我很定製永遠真誠地愛你!

+0

您可以使用http://anantgarg.com/2009/05/13/gmail-facebook-style-jquery-chat/在網頁 – 2012-01-07 14:09:50

回答

0

你可以用AJAX請求,指定聊天室和上次看到的消息作爲POST或GET參數加載,例如新的消息。在腳本中,您可以輕鬆訪問現有會話。答案可以格式化爲JSON。 JSON在JavaScript端很容易解析。

現在只需要加一個間隔(setInterval())定期檢查新郵件,你是一個非常簡單的客艙完成。

爲了節約您可以使用一個文本文件或數據庫。第二個可能會更容易,但是您需要更多的優化才能不殺死您的服務器。

+0

感謝快響應!你知道任何聊天室代碼嗎? – Elizabeth 2012-01-07 14:14:02

+0

我自己寫了一個聊天,但這可能不是對你有用的東西。我不知道任何獨立的留言/聊天室。 – TimWolla 2012-01-07 14:25:27

0

對於這個問題客艙與任何部件,使用自定義外的箱子一個或推出自己的決定在很大程度上是決定的,這是更多的工作。由於您在登錄和聊天室需求上強制定製到現有聊天箱時看起來像是一大堆工作(導致一團糟),所以我建議您推出自己的聊天室。

一些提示:

  • 使用長輪詢的客戶來說,這往往是強大的,往往是併發連接數和CPU使用之間可接受的平衡。
  • 傳送您的服務器時間戳與每個回覆
  • 使用簡單的數據庫表爲您的聊天與時間戳作爲主鍵。查詢緩存會做90%的工作
+1

長輪詢導致最大連接錯誤? – 2012-01-07 14:24:10

+0

這取決於您的服務器,客戶端數量,以及 - 最重要的是您的實施。當連接數超過閾值並且在客戶端具有類似於200-500毫秒的延遲時間時,理智的實施結束了最長時間運行的民意調查。這使連接計數變得平坦,相當有效 – 2012-01-07 14:28:50