我正在一個網站上顯示一些來自數據庫的頻繁更改的數據(隊列狀態和聊天對話)。我目前的設置是Apache/PHP/MySQL。當然,我希望避免每隔x秒輪詢服務器,因爲這不能很好地擴展。我想做反向ajax長輪詢,但是,我讀過Apache不能很好地工作,因爲它很快用完了工作線程。有很多其他Web服務器可以解決這個問題:nginx,tornado等。但是,我的問題是,PHP是我所知道的唯一的服務器端腳本語言。此外,我已經寫了一些PHP腳本,所以我想盡可能保留它們。只要我仍然可以使用PHP,我就可以使用切換服務器。但是在做了一些更多的研究之後,我讀過人們說PHP(PHP-FPM?)也爲每一個請求創建了一個進程,這意味着如果我有成百上千個打開的連接,將會有數百個/成千上萬的進程,這也是一個問題。php是否可以通過反向ajax長輪詢進行擴展?
我可以得出結論嗎?沒有很好的可擴展的方法來使用PHP進行長查詢網站?我應該放棄PHP並學習另一種服務器腳本語言嗎?我現在可以繼續使用當前的設置(Apache/PHP)開展長輪詢,但是我不希望腳本語言的選擇在部署時對我的系統的可伸縮性造成任何限制。所以我該怎麼做?我對網絡編程並不是很有經驗,所以如果有哪位大師可以給我一些提示,我會很感激!謝謝!
自己沒有這樣做,但會使用js套接字是一個選項?也許也使用node.js。 原生支持瀏覽器中的websockets是iproving,但我猜jQuery插件處理? –
我並沒有真正考慮websocket,因爲它在所有主流瀏覽器上都不支持。實際上,我研究過node.js,但是從我聽說它還比較新,所以對框架的支持更加有限。我目前正在考慮Django,這意味着我必須接受python。我聽到了有關框架的好消息,但是如果有辦法解決性能問題,我仍然傾向於使用php。 – pinghsien422
我肯定會重新考慮node.js - 一個簡單的ajax請求到服務器端口node.js正在運行可能只是一個竅門。 –