2010-10-04 80 views
6

我的想法是建立一個網站,在那裏人們可以註冊並搜索一個人聊天。他們可以選擇來自某個國家,流派,某些年齡的人,等等。實現人與人之間的隨機聊天

是的,我知道有很多這樣的網站,但我想實現這一點,因爲它看起來非常具有挑戰性。

你能告訴我一些想法,我怎麼才能使用PHP + MYSQL + JQuery(Ajax)實現這個功能?我既不是初學者,也不是先進的。

那麼,該如何工作?一個人點擊搜索按鈕,這個人被放入他搜索某人聊天的數據庫中,接下來是什麼?我也希望能夠讓人們在同一時間與幾個人交談。

我不是要求一個代碼或東西,只是想法如何編碼,不需要代碼。

謝謝。

+4

感謝我的新網站的想法! bwahahahahaha :) – Drewdin 2010-10-13 20:26:59

+0

JavaScript會殺死你的帶寬,我必須說。但是你需要考慮很多事情看看我的答案。 – Val 2010-10-14 05:06:34

+0

@Drewdin:嗯,我真的不想讓你失望,但已經有很多像這樣的網站。 :)無論如何,祝你好運。 – 2010-10-14 14:44:20

回答

11

我不認爲像PHP這樣的同步阻塞編程語言是這種應用程序的正確平臺。選擇像JavaScript這樣的異步,非阻塞語言更明智些。這具有很大的優勢,您可以使用Long Polling這將改善應用程序中的聊天體驗。

因此,我建議使用NodeJS來實現。您可能想要在節點中查看an implementation of a simple chat

+4

因爲什麼時候PHP是'阻塞'語言和'JavaScript'是一種非阻塞語言?還是你暗示,因爲PHP是服務器端和Javascript是客戶端?編輯:我現在看到,你正在爲NodeJS廣告 – smirkingman 2010-10-13 13:45:29

+2

我遲到了。 +1的Node.js它只會使聊天運行順暢,資源不足,您可以輕鬆處理單個vps上的1000個併發用戶,另外還有可處理Twitter OAuth等的模塊,因此您甚至沒有如果你不想使用數據庫,你可以用Socket.io等代碼來進行對話 – stagas 2010-10-14 01:04:55

4

爲每個組織單位(國家,流派,年齡等)製作一個存儲桶。

當使用連接時,爲它們所屬的每個存儲桶分配一個增量更大的索引。

當用戶想要連接桶中的某個人時,只需生成一個介於0和桶的最大索引值之間的新隨機數然後連接它們!

0

您可以使用Orbited(連同js.io的瀏覽器),要麼XMPP或IRC作爲基礎系統。這兩個提供強大的聊天基礎設施,可以讓您實現您需要的任何功能,例如羣聊。

2

我相信使用PHP + MySQL很好。我建議你使用推送服務使聊天環境更好。通過推送,您的客戶端不需要請求服務器獲取新數據+就可以實時聊天。一些推送服務是:PusherAppKwwika,HookboxBeaconPush。 他們有很好的支持,文檔和庫。祝你好運。

1

我不認爲一個複雜的框架是這種應用程序的一個很好的解決方案。 我建議你堅持一個基本的JavaScript/jQuery的客戶端..和PHP的服務器端.. 唯一的問題,你可能會遇到的是,你需要一個非常強大的數據庫解決方案,假設你至少針對一些流量,並且只有當您需要存儲消息的存檔時,在這種情況下,我會建議Oracle(以在大型數據庫中工作得很好而着稱,但它不是免費的)提供。 如果不是這樣,MySQL(免費)將使用相對較小的數據庫在高流量上做的很好。

基本上,其中的想法將依賴於您的應用程序很簡單..您可以與用戶,另一個與消息,首選項...等 關於客戶端...只刷新頁面每3 -5秒,或讓用戶指定費率,並用新消息/用戶/請求等更新網頁(如果有的話)。 一旦用戶關閉,你可以從數據庫中刪除與他的活動有關的所有信息,這將節省一些空間。

希望你能理解我的英語, 最好的問候。

1

你能告訴我怎麼使用PHP + MYSQL + JQuery(Ajax)實現這個功能嗎?我既不是初學者,也不是先進的。

如果你是你說的那樣,那麼我相信你不知道你打算使用的任何技術。所以,在這種情況下,我建議你先做一些閱讀,再做一些簡單的例子,然後從那裏繼續。例如,

  • 開始用PHP How-to文章 - 學習語法
  • 創建一個簡單的網頁 - 創建您的第一個網站
  • MYSQL How-to文章 - 學習查詢/語法
  • 添加數據庫MySQL的可能,實現簡單的CRUD操作
  • 閱讀有關聊天應用 - 工作/內部,不同的架構,你可以按照
  • 準備一個小的客戶端/服務器應用程序基礎 - 不同的協議被用來

...然後當你開始感覺舒適的代碼是當你在代碼開始思維,轉移到您的羽翼豐滿聊天摺疊!

您最終可能會扭曲您原來的想法,但不要擔心,它是過程的一部分。當我們看到更清晰的圖片時,事情就會改變。

即使您打算使用現有的開放庫/控件,您也必須知道如何使用它們;你應該得到足夠的技能,你知道一個釘子是錘打,但沒有其他方式。

另外,如果以奉獻精神完成,我會看到大約2到3個月的端到端階段。