PHP 可以支援 Comet 即時訊息傳遞嗎?
可以考慮使用 PHP 作為後端來實現即時聊天。然而,一個常見的批評給這個想法蒙上了陰影:
「據報道,PHP 對於Comet 來說是一個糟糕的選擇,因為它需要與每個瀏覽器客戶端保持持久連接。使用mod_php 需要為每個瀏覽器用戶端專門綁定一個Apache子進程。
Apache 的執行緒管理
每個Apache請求都會使用一個單獨的工作線程直至其完成。以持續時間長著稱的 Comet 請求可以獨佔這些執行緒。PHP 的並發執行限制
即使 Apache 的線程分配得到解決,PHP 的本質還是需要唯一的線程根據要求。結果,FastCGI 未能解決這種情況。Continuations:超出 PHP 的範圍
Continuations 本身並不支援在事件觸發時恢復 Comet 請求。 PHP 支援。可以解決方案
儘管存在這些障礙,但仍然存在解決方法:Apache 的事件MPM:
Apache 的事件MPM:
注意事項
這些解決方案附帶警告。事件 MPM 可能不會提供顯著的改進,並且負載平衡會為架構帶來額外的複雜性。以上是PHP 能否有效處理基於 Comet 的即時訊息傳遞?的詳細內容。更多資訊請關注PHP中文網其他相關文章!