我有一個Web應用程序,而不是匆忙構建,只是將我們的想法演示給選定的少數人。它需要更新的信息,所以我用jQuery和PHP使用快速和骯髒的短輪詢技術將我們的演示放在一起。性能並不重要,因爲在任何時候只有少數人訪問此演示。需要建議轉換我的應用程序,以允許實時更新
該應用程序基本上是一個實時隊列,從一個Android應用程序提供項目。現在我有android發送POST數據到一個API添加一條記錄到數據庫。然後,我使用短輪詢來保持隊列在網絡方面的更新(不理想,我知道)。
既然演示結束並且有很大的興趣,我的任務就是這個應用程序必須能夠擴展到我估計的每天大約2500個客戶端連接(500家商店w /在未來一年左右的時間內,最多可連接5臺瀏覽器)。
爲了使這成爲現實,我一直在閱讀使這個應用程序實時以及使用長輪詢技術(如Comet)的各種方法。我的腦袋現在有了各種各樣的選擇。我已經看過像Pusher這樣的服務,但我們真的想盡量減少每月的成本,所以這只是最後的選擇。 Node.js似乎是流行的選項,但這需要我重寫我的整個應用程序,不是嗎?
即使我確實使用類似Node.js的東西,但我對於如何處理來自android應用程序的傳入POST數據並且讓它更新數據庫並將其發送到客戶端瀏覽器感到失落。
實時隊列只是Web應用程序的一部分,其餘部分可以在不需要任何實時功能的情況下完成。如果我使用node.js,我可以在node.js中寫入隊列,並使用更傳統的LAMP堆棧運行網站的其餘部分?
我的確有控制商店中使用哪些瀏覽器的優勢(Chrome),所以我並不需要擔心傳統的瀏覽器支持。
真的任何意見,可以引導我在正確的方向將不勝感激。看起來似乎有很多選項,但我不確定哪一個最適合我的情況。
研究使用網絡套接字而不是「實時」數據的任何輪詢。此外,請看看pubsub模式 - http://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern,因爲您所描述的似乎適合模型。 –
像Ratchet這樣的網絡套接字解決方案能夠很好地適應我的工作嗎? – dmarzio
可能,但你必須測試才能確定。 –