先看一下都是哪些用户再用Swoole
安装:
小编使用的是ubuntu16.40环境,跟着我一步步来学习吧!
php-5.3.10 或更高版本
gcc-4.4 或更高版本
make
autoconf
pcre ( centos 系统可以执行命令:yum install pcre-devel)
下载地址:
下载源代码包后,在终端进入源码目录,执行下面的命令进行编译和安装
pecl安装要是遇到上面的问题,请按如下方法解决(切换到root):
安装好后再PHP. ini文件 中加上
extension=swoole.so
使用 PHP -m 命令检查是否成功安装,如果没有可能是 php.ini 的路径不对,可以使用 php -i |grep php.ini 来定位到php.ini的绝对路径。
快速起步, 创建TCP服务器:
此处需要注意端口问题 ,
netstat -an | grep 8090,若未弹出任何消息,说明端口未被占用,此时接着进行下一步,若显示当前端口被占用,记得换一个端口哦,以上操作完成后先打开一个终端。
php server.php //运行程序
然后打开另一个终端,按我标出的步骤进行操作
创建 UDP 服务器:
UDP服务器与TCP服务器不同,UDP没有连接的概念。启动Server后,客户端无需 connect ,直接可以向Server监听的8091端口发送数据包。对应的事件为onPacket。
运行程序:php udp_server.php后按下图中操作,此时已经连通。
创建 web服务器 :
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服务器
WebSocket服务器是建立在Http服务器之上的 长连接 服务器,客户端首先会发送一个Http的请求与服务器进行握手。握手成功后会触发onOpen事件,表示连接已就绪,onOpen函数中可以得到$ request对象 ,包含了Http握手的相关信息,如GET参数、Cookie、Http头信息等。
建立连接后客户端与服务器端就可以双向通信了。
设置定时器
创建同步TCP客户端
这个客户端是同步阻塞的,connect/send/recv 会等待IO完成后再返回。同步阻塞操作并不消耗CPU资源,IO操作未完成当前进程会自动转入sleep模式,当IO完成后操作系统会唤醒当前进程,继续向下执行代码。
创建异步TCP客户端(异步客户端只能用于cli环境)
异步客户端需要设置 回调函数 ,有4个事件回调必须设置connect,error,receive,close。分别在客户端连接成功、连接失败、收到数据、连接关闭时触发。
swoole很强大,希望大家到官网多看,之后我会做一个swoole开发的简易聊天室,以后PO出代码供互相学习。