
1 yakczh 2014-02-26 15:41:36 +08:00 swoole |
2 zorceta 2014-02-26 16:11:21 +08:00 socket可以承载TCP/IP,HTTP基于TCP/IP。 就这样。 |
4 itfanr 2014-02-26 16:37:33 +08:00 同时能够接收 http 请求又能够接收 socket 连接的 php 解决方案?http+socket?这个可以用在嵌入式上搞远程操作硬件码? |
5 yakczh 2014-02-26 16:41:30 +08:00 php-fpm不能跑,只能用cli跑,除非修改fastcgi协议 不过你可以用nginx代理ws请求到cli,前端只暴露nginx 其实php做这个不如java,当然你可以用多进程来搞,然后再拉个memcache来共享信息 |
…跑一个 fpm ,再跑一个 cli 不就好了… |
9 luckyduck 2014-02-26 16:53:02 +08:00 1.你可以用telnet直接连接上php-fpm,这时候你并没有走HTTP协议,它就像一个socket server,但你也没法让它执行你的PHP脚本,因为它不知道你要执行哪一个,你们之间没有遵循某种协议。 2.用php写的socket server,是可以处理http请求的,只不过这需要你自己来解析和响应,这就和python那些原理一样了。 |
10 yakczh 2014-02-26 16:54:26 +08:00 @itfanr 直接go吧,socket王者 参看 http://www.techempower.com/benchmarks/ |
12 mantianyu OP |
13 solove 2014-02-26 17:22:00 +08:00 推荐个别人写的 。。github fork下 zphp 项目有实现 |
14 mantianyu OP |
15 yakczh 2014-02-26 17:25:45 +08:00 @mantianyu 晕 不如是性能, socket都支持,都能做,就象同样的活,两个人干,有的干得快,有的干得慢, servlet只是sun对java来实现http请求服务方面定的一堆规范,你也可以定义一个serverlit的规范,说不定比它这个更快更简单 |
16 yakczh 2014-02-26 17:34:33 +08:00 这玩意儿就不要折腾php了,php是采用应用服务器和业务脚本分离的方案,相当于异构系统结合起来,应用服务器c常驻内存,处理连接, php脚本一次性筷子,用完就扔,而象java,python,ruby,node其他这么单一语言同时扮演应用服务器容器和业务处理方案来说,一步到位,只要在解析http协议的时候检测下upgrade头就可以了(ws),或者也可以用自己定义的数据包格式,正常的http请求头就处理完业务就断开连接,如果是自己定义的数据包格式,就保持连接,或者push数据 |
18 wwek 2014-02-26 18:18:53 +08:00 楼上的说的很清楚了。 php 的用 swoole 用cli模式。 或者用golang |
20 pubby 2014-02-26 21:38:50 +08:00 直接裸跑一个php进程好了,不要和php-fpm搞一起 至于性能,看你具体干什么用途了。 我在公司用php的socket做过很多性能要求不苛刻的东西。 话说几年前我还见过一个网页在线客服服务商的后台服务整个一个php+socket写的。(就是那种网页上挂一个在线客服对话框那种东西) 性能要求苛刻的,用node.js或者golang吧(从部署和升级的便利上来说更推荐golang,直接可执行程序一考完事) |
21 mantianyu OP @itfanr 不在一个区域网的话, 用 http 也做不到双向实时的通信啊, http 只是个请求 --- 响应模型, 仅用 http 要怎么进行远程控制? |
23 mantianyu OP @itfanr 原来你是这个意思, 那如此说来, socket 就不能实现远程控制吗? 谁说 socket 只能用在区域网了 |
25 ybf1220 2014-02-27 09:45:20 +08:00 php-fpm 可以作为多个 factcgi 用,只要在/etc/php-fpm.d/写入相应的配置文件(这是防止跨站的好方法,不多很少人用) ,我只知道 php-fpm 除了在端口上监听,还可以在 socket 上监听,listen = /tmp/fpm.sock 。这样 nginx 只要反代到 sock 路径就能解析 php |
26 pushy 2014-02-27 18:53:47 +08:00 bash-3.2# php -S 127.0.0.1:80 |