Re: [請益] PHP的socket跟其他的有什麼不同

作者: alpe (薛丁格的貓)   2017-09-20 14:39:53
※ 引述《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.
作者: m7m123d ( )   2017-09-23 00:26:00
哈,樓上抱歉可能我表現得太囉唆,我很感謝回文大大提供的這些關鍵字,以及回文解釋
作者: gpmm (銀色)   2017-09-20 16:02:00
推~
作者: m7m123d ( )   2017-09-20 20:32:00
作者大大,我在搜尋時有出現 swoole 跟 workerman 但不明白,如果說 PHP 可以寫 websocket 那為什麼需要 swoole這些來作輔助呢?所以主要原因是處理效能的問題?所以其實是都有,重點是效能問題太嚴重?
作者: MOONRAKER (㊣牛鶴鰻毛人)   2017-09-21 13:36:00
人家有講了non-blocking 你可以再google一下
作者: GALINE (天真可愛CQD)   2017-09-23 12:32:00
Try ReactPHP? Event-driven, non-blockinghttps://github.com/amphp/amp 也可以看看幾年前用過 Ratchet,筆電能400個同時連線但有leak
作者: pc031564 (pc031564)   2017-10-02 10:51:00
改php-websocket-server為一對一,client用phpws可以

Links booklink

Contact Us: admin [ a t ] ucptt.com