PHP + Swoole2.0 初体验(swoole入门教程)

PHP + Swoole2.0 初体验(swoole入门教程)

环境:centos7 + PHP7.1 + swoole2.0


准备工作:

一、 swoole 扩展安装


1 、下载swoole

cd/usr/localwget -c https://github.com/swoole/swoole-src/archive/v2.0.8.tar.gztar -zxvf v2.0.8.tar.gzcdswoole-src-2.0.8/


2 编译& 安装

使用phpize来生成php编译配置;

./configure 来做编译配置检测;

make进行编译,make install进行安装;

phpize./configuremake && make install


3 、修改php.ini 加载swoole扩展

extension=swoole.so


4 、重启服务器

servicenginx restart service php-fpm restart


5 、验证是否安装成功?

php-m


二、 telnet 服务安装


1 、安装 telnet telnet-server

yuminstalltelnet telnet-server


2 、检测是否安装成功

rpm-qa telnet-server rpm -qa telnet


3 、重新启动xinetd守护进程

由于telnet服务也是由xinetd守护的,所以安装完telnet-server,要启动telnet服务就必须重新启动xinetd

servicexinetd restart


4 、测试:查看TCP的23端口是否开启正常?

netstat -tnl |grep23


三、 代码


1、 在项目目录 创建 index.php 文件

写入以下代码:

//创建Server对象,监听 127.0.0.1:9502端口$serv =newswoole_server("127.0.0.1",9502);//监听连接进入事件$serv->on('connect',function($serv, $fd){echo"Client: Connect.\n";});//监听数据发送事件$serv->on('receive',function($serv, $fd, $from_id, $data){    $serv->send($fd,"Server: ".$data);});//监听连接关闭事件$serv->on('close',function($serv, $fd){echo"Client: Close.\n";});//启动服务器$serv->start();

这里就创建了一个TCP服务器,监听本机9502 端口,你也可以改成其他的端口号(服务器必须支持此端口);


2、 启动server : cd到你的项目目录下。与index.php文件同级 。

执行

phpindex.php

备注: 也可以直接执行“php /全路径/index.php”;


这个时候,其实Server已经启动了,并且正在运行,监听了本机的9502端口,此时Server处于等待的状态,所以没有任何输出。


注意: 启动之后,不要动了, 便于查看客户端的链接信息。测试成功之后。可以关闭。纯用客户端


3、 我们新开一个窗口 ,使用telnet 链接

# 在第二个Shell窗口telnet127.0.0.19502


输入

hello


结果如下:


此时,我们再返回第一个窗口,就会看到刚才卡住的光标有输出了:

输出的正是我们在OnConnect回调中设置的内容。


4、注意这句话:

Escape characteris'^]'.

这个提示的意思是按Ctrl + ] 会呼出telnet的命令行,出来telnet命令好之后就可以执行telnet命令,例如退出出telnet是quit.


如果你需要退出telnet ,就先使用 Ctrl + ] 呼出 命令行。然后输入:

quit


切换到 server窗口,会看到关闭的提示:

这样子说明整个过程成功了。


5 、断开链接

如果修改了index.php,必须断掉之前,然后重新打开。

新建脚本 起名 swoole_stop.sh (网上找的,我不会写,过!)代码如下:

#! /bin/bashps -eaf |grep"index.php"| grep -v"grep"| awk'{print $2}'|xargskill-9

这需要放在和 index.php 同一个文件夹。


我们需要cd到这个文件夹,执行

shswoole_stop.sh


结果:


反看server 窗口:

你可能感兴趣的:(PHP + Swoole2.0 初体验(swoole入门教程))