2009-06-06 38 views
2

我正在尋找實施1對1用戶到用戶網絡聊天應用程序的新網站的作品。類似於Omegle的東西是最終產品的目標。有誰知道現成的解決方案是否有這個能力?用戶到用戶網絡聊天應用程序(PHP) - 有什麼選擇?

由於我的經驗,PHP是選擇的語言。 Omegle是使用扭曲的庫以Python編寫的。是否應該從頭開始構建應用程序,任何人都可以通過PHP爲用戶之間的網絡解決方案提供建議?

在此先感謝您的幫助。正如你可能已經提到的那樣,我還沒有遠離主流網站,所以雖然PHP沒問題,但連接/網絡層對我來說是相當陌生的。

很長一段時間的讀者,首次海報

回答

2

有許多基於Jabber的JS或Flash客戶端解決方案。一個易於安裝的服務器是Openfire和發佈(開源)服務器的公司,也有服務來幫助整合到網站上。在我以前的網站上,我安裝了服務器,但是有人爲它寫了一個基於閃存的客戶端(這很麻煩,我不會那樣爲客戶端做這件事),但是服務器本身完美地執行了子服務器,第二反應。

它已經取代了一個基於AJAX的內部聊天系統,但有一小部分客戶端使用它,ajax客戶端對網站的HTTP命中率負責72%(沒有它,我們做了700K +點擊/天)。去基於Jabber的人在一夜之間將這些人刪除,並幫助加快了網站的速度。 Jabber系統也可以通過很少的額外工作來擴大10倍。

+0

感謝您對Openfire的建議。在稍微查看一下後,我可能會使用基於AJAX的客戶端的Openfire,直到我的需求保證一些效率更高的東西,例如Flash客戶端 – Lobe 2009-06-06 12:54:16

0

舊的傳統的方式來做到這一點是服務於一個頁面,其中包含了所有的聊天信息。該頁面由用戶的瀏覽器定期刷新。但這種方式有點蹩腳,因爲它導致閃爍,整個頁面重新加載和發佈問題。

另一個好辦法是使用Ajax檢查新消息併發布消息。

谷歌搜索提供了良好的效果:http://www.phpfreechat.net/

+0

感謝您的鏈接,但我期待的是一對一即時信使風格聊天的推動者,而不是像Php聊天室那樣的聊天室。如果沒有預先構建的解決方案,編碼前端應該不是太具有挑戰性,而是如何將不同的php用戶連接在一起 – Lobe 2009-06-06 09:36:29

1

你不能 「不同的PHP用戶連接在一起」。所有這些將從user1到server和user2到服務器。然後,每個用戶的瀏覽器必須定期輪詢新內容。當你說「連接/網絡層對我來說相當陌生」時,我認爲你可以做到這一點,而不必讓瀏覽器輪詢服務器。你不能。我沒有使用phpfreechat,但是如果它有能力做不同的房間,那麼你可以通過爲每個用戶對設置獨特的房間來調查它是否可行。

+0

我認爲我錯誤地寫了它。通過「連接不同的php用戶」,我指的是如何在服務器端共享數據。我對這個問題的一個想法是數據庫,但是這對於一個聊天程序來說太低效了。通過「連接/網絡層對我來說相當陌生」,我指的是同樣的事情。 我看到流程是這樣的:客戶端 - > php - >從其他用戶獲取信息 - > php - >客戶端,與客戶端 - > php通過AJAX完成 – Lobe 2009-06-06 12:59:07