Home  >  Article  >  Backend Development  >  websocket - php socket

websocket - php socket

WBOY
WBOYOriginal
2016-06-06 20:37:091856browse

今天研究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跨域的问题。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn