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