作者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://webptt.com/cn.aspx?n=bbs/PHP/M.1505889610.A.AB6.html
1F:推 gpmm: 推~ 09/20 16:02
2F:→ m7m123d: 作者大大,我在搜寻时有出现 swoole 跟 workerman 但不 09/20 20:32
3F:→ m7m123d: 明白,如果说 PHP 可以写 websocket 那为什麽需要 swoole 09/20 20:32
4F:→ m7m123d: 这些来作辅助呢?所以主要原因是处理效能的问题? 09/20 20:33
5F:→ m7m123d: 所以其实是都有,重点是效能问题太严重? 09/20 20:36
6F:→ MOONRAKER: 人家有讲了non-blocking 你可以再google一下 09/21 13:36
7F:→ m7m123d: 哈,楼上抱歉可能我表现得太罗唆,我很感谢回文大大提供 09/23 00:26
8F:→ m7m123d: 的这些关键字,以及回文解释 09/23 00:26
9F:推 GALINE: Try ReactPHP? Event-driven, non-blocking 09/23 12:32
11F:→ GALINE: 几年前用过 Ratchet,笔电能400个同时连线但有leak 09/23 12:36
12F:推 pc031564: 改php-websocket-server为一对一,client用phpws可以 10/02 10:51