当前位置:  开发笔记 > 编程语言 > 正文

websocket - php socket

今天研究websocket的时候,发现网上很多websocket+php的demo都是要在命令行输入php-qxxx.php来启动服务端,我对php不是很熟悉,想请问以下这种场景能实现吗?浏览器ajax请求创建socket-->服务端接收并建立s
今天研究websocket的时候,发现网上很多websocket+php的demo都是要在命令行输入php -q xxx.php来启动服务端,我对php不是很熟悉,想请问以下这种场景能实现吗?

浏览器ajax请求创建socket-->服务端接收并建立socket,返回socket地址和端口,

浏览器接收到socket地址和端口,开始new websocket,与服务端建立socket链接。

另外:每个浏览器与同一服务器建立socket连接,服务端是不是就得新开一条进程??

回复内容:

今天研究websocket的时候,发现网上很多websocket+php的demo都是要在命令行输入php -q xxx.php来启动服务端,我对php不是很熟悉,想请问以下这种场景能实现吗?

浏览器ajax请求创建socket-->服务端接收并建立socket,返回socket地址和端口,

浏览器接收到socket地址和端口,开始new websocket,与服务端建立socket链接。

另外:每个浏览器与同一服务器建立socket连接,服务端是不是就得新开一条进程??

使用命令行运行服务端,是因为这样更健壮,不要尝试以php-fpm或者apache这样WEB服务的方式建立起服务端,不切实际。

PHP编写服务端,可以考虑下用这个,http://www.swoole.com/。

一般稳定的server都要以deamon的形式运行存在。
楼上说的swoole是用C扩展实现的php socket server,类似的还有workerman,workerman是基于php的pcntl实现,可以说是原生PHP实现的,共同点就是一定要以deamon形式运行server,抛开http层的apache或者nginx,直接走socket(按我的理解,是传输层的东西)。

ajax可以链接server,你可能,我是说可能,会遇到ajax跨域的问题。

推荐阅读
雯颜哥_135
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有