看板 PHP 關於我們 聯絡資訊
※ 引述《m7m123d ( )》之銘言: : 各位大大晚安, : 小步才又來打擾了,最近有機會寫 PHP websocket 但很多疑惑, : 最近聽隔壁的說 node 可以寫 websocket 但 PHP 不行, : 搜尋 PHP socket 明明官網有相關 socket_* 函數,或者好多教 : PHP socket 寫推播的文,但又一直聽到 PHP 無法寫 socket : 究竟是什麼意思呢? : (因為搜尋了 PHP socket 都是一些 socket_* 的教學範例文章, : 小布材這邊是想更了解 PHP / socket 的愛恨故事,有請知道的 : 大大指引迷津(給個關鍵字之類).. : 感謝 不是不行啊,2011 node.js 還在 0.x 的時候我就用過PHP 寫過 webscoket. 跟 socket server. 但問題在效能,PHP是blocking所以要處理多個連線表現就會很差, node.js 的 non-blocking 加上 javascript 已經很常用了,所以 要寫socket/websocket 用node.js 寫會很快,效能也很好。 但寫的好看就是功力的。 現在也有PHP extension 可以做到non-blocking的PHP server. swoole , workman... ... 關鍵字: socket programing. blocking, async, cluster, thread. -- 人大抵上既沒有自己想像中那麼幸福,也沒有那麼不幸…重要的是, 是否對於生存抱著希望或已厭倦 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 117.19.6.142 ※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1505889610.A.AB6.html
gpmm: 推~ 09/20 16:02
m7m123d: 作者大大,我在搜尋時有出現 swoole 跟 workerman 但不 09/20 20:32
m7m123d: 明白,如果說 PHP 可以寫 websocket 那為什麼需要 swoole 09/20 20:32
m7m123d: 這些來作輔助呢?所以主要原因是處理效能的問題? 09/20 20:33
m7m123d: 所以其實是都有,重點是效能問題太嚴重? 09/20 20:36
MOONRAKER: 人家有講了non-blocking 你可以再google一下 09/21 13:36
m7m123d: 哈,樓上抱歉可能我表現得太囉唆,我很感謝回文大大提供 09/23 00:26
m7m123d: 的這些關鍵字,以及回文解釋 09/23 00:26
GALINE: Try ReactPHP? Event-driven, non-blocking 09/23 12:32
GALINE: https://github.com/amphp/amp 也可以看看 09/23 12:35
GALINE: 幾年前用過 Ratchet,筆電能400個同時連線但有leak 09/23 12:36
pc031564: 改php-websocket-server為一對一,client用phpws可以 10/02 10:51