我目前正在開發一個將使用websockets進行客戶端 - 服務器通信的PHP應用程序。我聽說過很多次PHP不應該用於服務器應用程序,因爲它缺少線程機制,內存管理(循環引用)或不方便的套接字庫。帶有PHP的Websocket服務器
到目前爲止,一切工作都很好。我使用phpws作爲websocket庫和Doctrine DBAL來訪問不同的數據庫系統; PHP是5.3.8版本。服務器應該最多爲30個客戶端提供服務。然而,特別是在最近幾天,我閱讀了幾篇文章,指出PHP對於長時間運行的應用程序無效。
現在我不知道是否應繼續在PHP中使用websockets或重新構建整個serverside應用程序。我用Socket.IO嘗試過Python,但我沒有得到我期望的結果。
我想我有以下選擇:
- 保持一切,因爲它是。
- 使應用程序將Ajax與Socket.IO結合使用 - 例如運行一個服務器端腳本,在數據提交給服務器時調用客戶端的ajax調用。
最後一點聽起來很有趣,雖然它需要一些工作..會是服務器一次執行所有客戶端請求的問題嗎?
你會推薦什麼? PHP的內存管理問題(我每次客戶端發送數據到服務器時都使用gc_collect)仍然有效嗎?除了顯而易見的原因(沒有線程,...)之外,還有其他原因不使用PHP作爲服務器?
所以你問你是否應該放棄你目前的工作設計?像這樣的問題在這裏並不真正有效,你將不得不決定自己編碼。你知道哪些其他服務器端語言?發佈你的python代碼,如果你決定重寫你的代碼,有人可以幫你找到問題。 – xthexder 2012-08-17 13:36:00