2013-02-16 62 views
0

我正在創建應該成爲我網站一部分的實時聊天應用程序。網站完全使用PHP開發。現在問題是我處於困境什麼是最適合實時聊天應用程序平臺的工具,它將成爲我網站的一部分。它應該使用我的網站上的用戶並與其共享的PHP應用程序共享會話。現場網絡聊天應用程序的正確工具

我做了一些研究,因爲我認爲 - PHP + Apache並不是真正的開發基於Web套接字的應用程序的最佳工具,就像我的實時聊天一樣。像Node.js這樣的其他平臺看起來是正確的選擇,但我不確定使Node與我的PHP應用程序共享資源是多麼容易。

我很感興趣你會用什麼方法來處理這種情況?你會實現什麼架構的系統?

爲了最終我想告訴你,我的PHP網站是基於MySQL的,並且我正在使用knockoutJS進行客戶端實現。它將在客戶端使用SocketIO,因爲它具有後備策略並支持非HTML5瀏覽器。我知道它也可以在服務器端使用,但我懷疑它和Node或目前未知的其他解決方案。這是我在這裏問這個問題的主要原因。有一個小的可能性,它將在共享主機上運行,​​但我完全理解共享主機和套接字連接的問題(關閉端口,不安裝Node的SSH等)。如果你有關於這種可能性的建議 - 寫下來。否則,只要忘記它,並回答它將會運行在VPS上。

謝謝。

回答

2

如果您打算使用node.js,那裏有解決方案來幫助將node.js集成到您現有的php環境中。 (例如Sharing PHP sessions with node.js)節點不能和apache一起玩,所以你可能想要考慮切換到Nginx和PHP-fpm。

個人爲了獲得這個運行「好」,這是一個很好的變化,只是一個簡單的「聊天」應用程序。我可能會考慮整合已經開發的解決方案Comet Chat。或者,如果我想讓它更具個性化,我會在獨立平臺上構建一些使用現有體系結構的東西。 Firebase是一款非常出色的服務,它看起來完全符合您的需求。如果這對你的用戶來說是一個很好的解決方案,那麼我會實現一些在Node.JS中構建的定製。

一個內部解決方案將開始評估您的服務器的需求。你期望有多少個併發連接?您是否可以控制低級操作系統功能。打開套接字並打開文件限制似乎是共享主機計劃的主要限制因素。所以你可能需要評估不同的託管計劃。節點& PHP的良好PaaS解決方案是AppFog。 Appfog最多可以免費使用2GB和10個實例,這可以幫助您開始使用。如果你想完全控制,我會推薦一個專用的服務器,或者類似亞馬遜AWS的東西。

然後你將需要評估你的架構。就像我說的那樣,Nginx在服務PHP和node.js方面做得相當不錯,但還有更多的選擇可以更好地滿足您的需求。

查看和開始學習的好地方是Ballons.io的源代碼。這是一個寫得很好的開源聊天,它利用了redis,這是PHP和node.js之間會話管理的常用解決方案。最重要的是,您在AppFog上構建源代碼,並在幾分鐘內測試出一些內部解決方案和代碼,而無需任何費用!

祝你好運!

+0

感謝您的回答。我看着Ballons.io,看起來它會起作用。對於共享會話 - 我將嘗試使用您分享的有關PHP會話處理程序的鏈接。 – NemanjaSRB 2013-02-17 00:42:07