2011-09-04 90 views
6

我想爲我的網站實現聊天系統。該功能與Facebook聊天非常相似。聊天將是一對一的基礎。PHP Jquery:聊天系統,這是什麼理想框架?

我知道如何使用PHP,MySql和使用JQuery來構建聊天系統。但我擔心的是,它不會在長期內擴展到大量用戶。

使用JQuery我會每秒發出請求以保持聊天窗口更新,或者如果用戶發送請求與另一個用戶聊天。這將導致額外的服務器負載,因爲用戶羣會增加加班時間。

我已經被告知使用PHP這不是一個理想的解決方案,我應該看看彗星編程,這是我從未嘗試過的。

我的問題是,有沒有我可以使用的預構建框架,或更好的方法來構建它?

我聽說過NodeJs和APE,但這些都不被我的服務器支持。

謝謝你們。

編輯:在與我的服務器傢伙的話後,我可能會更改我的操作系統,所以我可以運行NodeJS。 nodejs的可擴展性有多好,它能滿足我的需求嗎?

+0

您的服務器支持哪些其他技術? – generalhenry

+0

也許PHP非阻塞IO => http://thethoughtlab.blogspot.com/2007/04/non-blocking-io-with-php-mio.html。我還沒有嘗試過,因爲我喜歡node.js,但它可能工作... – Alfred

+0

支持的語言C PHP的python 2.4我認爲。 nodejs是否有用?這將工作,如果我改變我的操作系統在我的服務器上。 – LazyDeveloper

回答

5

PHP和Comet不是互斥的。彗星只是服務器推動的一種技術,所以你不必第二次進行輪詢。你使用PHP & JS實現Comet,它不是一種獨立的編程語言。

雖然:我不建議您自己編程聊天,除非您需要非常具體的功能。這是耗時容易出錯。預製備的溶液的使用之一,例如:

http://www.phpfreechat.net/

或Java IRC聊天室。谷歌更多。

+2

沒有好的預製解決方案,可以很好地擴展並且便宜。做你自己的。 [使用nowjs在12行中進行聊天](http://nowjs.com/)。聊天很容易。 – Raynos

3

作爲Rok Kralj說彗星是一個範例,可以應用於不同的技術。如果你想研究這個問題,PHP & Comet問題是一個很好的開始。

人們普遍認爲PHP不能很好地實時調整技術。 Facebook,誰是PHP的房子(雖然ended up compiling their PHP down to C (or maybe C++) for efficiency)。最常見的解決方案是使用專用的realtime technology進行實時通信,並將其保留在Web服務器之外。

就技術選擇而言,我會考慮WebSockets,因爲它們已成爲標準實時雙向通信。某些'Comet'服務器也使用WebSocket作爲傳輸,並回退到效率較低的HTTP Streaming或針對較舊瀏覽器的HTTP長輪詢。

如果您考慮使用託管服務,並且不想僅限於聊天功能,想要在某個時間點將實時通知,視覺協作或遊戲添加到您的應用,請使用http:/ /我工作的/pusher.com提供託管的實時消息服務,您可以輕鬆實現您的聊天功能。