我會盡量讓我的第一篇文章儘可能有趣。PHP中沒有守護進程的WebSocket服務器?
最近我對處理共享託管服務器上的WebSocket請求的可行性感興趣。
請不要告訴我「升級您的計劃」。所有這些在至少一個VPS上都是微不足道的。我意識到這一點。
正如很多人都知道,共享主機會...
- 殺死守護程序,如果他們看到服務器的插槽裏
- 塊使用
- 拒絕你shell訪問
- 保持apache和關閉的限制(無模塊安裝)
這些限制完全消除了phpwebsocket,python。需要僞裝成網頁的無後臺程序解決方案。
PHP是我最喜歡的服務器端語言,我製作了一個PHP websocket網關作爲網頁。
到目前爲止,我已經成功地爲握手和流輸出(使用輸出緩衝)發送正確的頭文件,但是我仍然無法弄清楚在初始請求後如何繼續讀取數據。
簡而言之,即使在PHP腳本啓動後,我仍想繼續從客戶端接收數據。我已經嘗試閱讀php://輸入pseudofile,但我似乎無法在GET結束後再讀取它。有沒有任何設置或黑客可以做到這一點?
謝謝!
如果你沒有一個守護進程,什麼會處理websocket上的流量?這聽起來像最好的沮喪祕訣...... – sarnold 2012-04-25 01:39:11
Apache是守護進程。當websocket連接進來時它會調用我的php腳本。 – user1354999 2012-04-25 01:55:41
Apache會很樂意收穫花費太長時間執行的腳本;你可以在三到五分鐘左右工作嗎? – sarnold 2012-04-25 01:56:40