作者alpe (薛丁格的貓)
看板PHP
標題Re: [請益] PHP的socket跟其他的有什麼不同
時間Wed Sep 20 14:39:53 2017
※ 引述《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: 幾年前用過 Ratchet,筆電能400個同時連線但有leak 09/23 12:36
推 pc031564: 改php-websocket-server為一對一,client用phpws可以 10/02 10:51