2009-10-29 63 views
0

我想提供一個PHP掛起請求,它會一直保持打開狀態,直到新事件存在,此時它會立即將JSON編碼數據返回給JavaScript客戶端。掛起請求內存問題

連接 - >等待事件(檢查,睡眠,檢查,睡眠等) - >檢測到事件 - >發回事件 - >關閉請求。

CPU負載不是這個配置的問題,但需要擴展的RAM數量大約爲5-10MB,因爲每個連接需要1個PHP處理器。有沒有辦法讓一個PHP進程被用來同時服務多個連接?還有可能在不使用某種類型的監聽守護程序服務的情況下執行此操作?

+0

聽起來像一個基本的網絡服務? – Galen 2009-10-29 02:05:46

+1

爲什麼這個過程必須四處走動?它當然可以完成,但對服務器配置和資源的代價是很高的。另外,它不是安全的。如果「您的」PHP線程中止,掛起或服務器重新啓動,該怎麼辦?爲什麼不使用會話等經典持久性模型,並對每個事件提出新的請求? – 2009-10-29 02:29:12

+0

這是一款交互式遊戲,需要接近實時響應,並且每隔0.5秒進行一次輪詢將使用比懸掛請求更多的資源。 – 2009-10-29 02:47:38

回答

2

它是一個互動遊戲,即 需要接近實時的響應, 和輪詢每1.5-2秒 要使用更多的資源比 掛請求

在這種情況下PHP絕對不是解決您的問題。考慮類似C++,Delphi或.NET來編寫web服務。你正嘗試用叉子吃湯...

+0

謝謝你恢復我對世界衛生水平的信心。 – 2009-10-29 09:58:45

+0

這是我的攻擊計劃,但我希望能夠找到一種適用於雲託管解決方案而不是自定義設置的解決方案。 – 2009-10-29 14:42:14