2010-12-05 84 views
13

如何開始開發聊天API,就像一個stackoverflow使用?如果它是開源的,我在哪裏可以找到它,如果沒有人可以指導我如何構建一個類似的聊天API?開發類似於Stackoverflow的Chat API

回答

1

我沒有太多的SO聊天,但這可能是一個開始,它是開源的,在我看來確實很好。

AJAX Chat

希望它能幫助,祝你好運!

10

現在是它的彗星時間。
彗星是反向ajax。如果你在聊天應用程序中使用ajax,你需要每次檢查數據庫更新,但在彗星的情況下,它的所有關於服務器端事件。

我們可以設置一些事件@server端,那麼當數據庫更新時它會自動更新網頁,也就是說我們不需要一直提供請求。

這樣我們可以避免由於大量請求而導致的服務器頭痛,並且應用程序將會非常快速。

這是一個使用彗星的實時聊天示例。
檢查出來:http://www.zeitoun.net/articles/comet_and_php/start

其超越阿賈克斯

1

我會強烈強烈建議檢查出的APE project。它代表Ajax Push Engine,它使用Comet Server技術/技術。這個項目的目的是每次處理成千上萬的用戶,並提供服務器端和JS接口客戶端。它與所有主要的JS庫兼容。

它的思想清晰,乾淨,最重要的是免費!

另外,我確信存在使用它的CMS插件。 DrupalChat module一直在討論使用它。

2

如果你不想打擾COMET的複雜性,你可以用jQuery的AJAX功能構建一個非常簡單的PHP聊天室。無論服務器端API如何,您都可以使用客戶端的jQuery與它進行交互。

客戶端可以使用像這樣的jQuery代碼輪詢服務器:

$(document).everyTime(pillowchat.settings.message_poll_frequency, function() { 
    if(pillowchat.state.poll == true){  
     getMessages(); 
    } 
}); 

jQuery的POST請求可以像這樣被髮送:

新郵件,活躍用戶,或
$.post("chat.php", { 
    "attribute":"important string" 
}, 
function(data){ 
    response = JSON.parse(data); 
    processNewMessages(response); 
}); 

他們可能是請求包含來自客戶端的新消息。

服務器上的API可以通過一百萬種不同的方式實現。我用PHP和CouchDB寫了一個簡單的聊天工作,效果很好。更多的細節和源代碼可在這裏:http://trillworks.com/nick/2011/08/13/pillowchat-how-not-to-build-a-chat-room-with-jquery-phpillow-and-couchdb/

我不會推薦這種方法,如果你期望超過30人在房間裏。當對這種設計進行壓力測試時,我發現apache無法處理所有的流量。確保你包含某種洪水檢測。

相關問題