您的位置 首页 php

Miss详解 Swoole:一个面向生产环境的 PHP 异步网络通信引擎

先看一下都是哪些用户再用Swoole

看完想不想了解一下?

安装:

小编使用的是ubuntu16.40环境,跟着我一步步来学习吧!

php-5.3.10 或更高版本
gcc-4.4 或更高版本
make
autoconf
pcre ( centos 系统可以执行命令:yum install pcre-devel) 

下载地址:

下载地址,ubuntu使用 wget 下载即可

下载源代码包后,在终端进入源码目录,执行下面的命令进行编译和安装

pecl安装要是遇到上面的问题,请按如下方法解决(切换到root):

问题以及解决方法

安装好后再PHP. ini文件 中加上

extension=swoole.so

使用 PHP -m 命令检查是否成功安装,如果没有可能是 php.ini 的路径不对,可以使用 php -i |grep php.ini 来定位到php.ini的绝对路径。

安装成功

快速起步, 创建TCP服务器:

程序代码( Server .php)

此处需要注意端口问题

netstat -an | grep 8090,若未弹出任何消息,说明端口未被占用,此时接着进行下一步,若显示当前端口被占用,记得换一个端口哦,以上操作完成后先打开一个终端。

php server.php //运行程序

然后打开另一个终端,按我标出的步骤进行操作

若和我显示的一样,恭喜你,本实例成功运行

创建 UDP 服务器:

udp_server.php

UDP服务器与TCP服务器不同,UDP没有连接的概念。启动Server后,客户端无需 connect ,直接可以向Server监听的8091端口发送数据包。对应的事件为onPacket。

运行程序:php udp_server.php后按下图中操作,此时已经连通。

连通结果

创建 web服务器

http_server.php

0.0.0.0 表示监听所有 IP 地址,一台服务器可能同时有多个IP,如 127.0.0.1本地回环IP 192.168.1.100局域网IP 210.127.20.2外网IP ,这里也可以单独指定监听一个IP。

启动服务(php http_server.php)

  • 可以打开浏览器,访问 查看程序的结果。

  • 也可以使用apache ab工具对服务器进行压力测试

显示结果

创建websocket服务器

ws_server.php

WebSocket服务器是建立在Http服务器之上的 长连接 服务器,客户端首先会发送一个Http的请求与服务器进行握手。握手成功后会触发onOpen事件,表示连接已就绪,onOpen函数中可以得到$ request对象 ,包含了Http握手的相关信息,如GET参数、Cookie、Http头信息等。

建立连接后客户端与服务器端就可以双向通信了。

可使用js代码来测试

结果

设置定时器

创建同步TCP客户端

client.php

这个客户端是同步阻塞的,connect/send/recv 会等待IO完成后再返回。同步阻塞操作并不消耗CPU资源,IO操作未完成当前进程会自动转入sleep模式,当IO完成后操作系统会唤醒当前进程,继续向下执行代码。

TCP通信过程

记得先启动server.php

创建异步TCP客户端(异步客户端只能用于cli环境)

async_client.php

异步客户端需要设置 回调函数 ,有4个事件回调必须设置connect,error,receive,close。分别在客户端连接成功、连接失败、收到数据、连接关闭时触发。

swoole很强大,希望大家到官网多看,之后我会做一个swoole开发的简易聊天室,以后PO出代码供互相学习。

文章来源:智云一二三科技

文章标题:Miss详解 Swoole:一个面向生产环境的 PHP 异步网络通信引擎

文章地址:https://www.zhihuclub.com/151794.shtml

关于作者: 智云科技

热门文章

网站地图