php Swoole扩展安装

Swoole扩展

PHP的异步、并行、高性能网络通信引擎,使用纯C语言编写,提供了PHP语言的异步多线程服务器异步TCP/UDP网络客户端异步MySQL异步Redis数据库连接池AsyncTask消息队列毫秒定时器异步文件读写异步DNS查询。 Swoole内置了Http/WebSocket服务器端/客户端Http2.0服务器端/客户端。PHP的异步、并行、高性能网络通信引擎,使用纯C语言编写,提供了PHP语言的异步多线程服务器异步TCP/UDP网络客户端异步MySQL异步Redis数据库连接池AsyncTask消息队列毫秒定时器异步文件读写异步DNS查询。 Swoole内置了Http/WebSocket服务器端/客户端Http2.0服务器端/客户端


编译安装

Swoole扩展是按照PHP标准扩展构建的。使用phpize来生成编译检测脚本,./configure来做编译配置检测,make进行编译,make install进行安装。

  • 请下载releases版本的swoole,直接从github主干上拉取最新代码可能会编译不过
  • 如果当前用户不是root,可能没有PHP安装目录的写权限,安装时需要sudo或者su
  • 如果是在git分支上直接git pull更新代码,重新编译前务必要执行make clean

下载安装包:https://wiki.swoole.com/wiki/page/6.html


解压:进入/usr/local/swoole-2.2.0目录,然后执行下面命令

phpize
./configure
make 
sudo make install

会在这个目录/usr/local/php-7.0.7/lib/php/extensions/no-debug-zts-20151012 生成swoole.so文件。

将改文件加入

php.ini和php-cli.ini

然后重启PHP,使用php -m就可以查看该扩展是否安装成功


出现标红的这个,就说么安装没有问题,那么php怎么调用了 ,使用下面简单的例子,就能明白服务端和客户端之间通信了

这个是服务端代码


//创建Server对象,监听 127.0.0.1:9501端口
$serv = new swoole_server("127.0.0.1", 9501); 

//监听连接进入事件
$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(); 

下面可能通过php 运行这段代码


运行之后,相当于在当前窗户运行,你也可以让后台运行,为了方便查看服务端监控客户端的响应。就按如图运行就行


运行如图命令,会看到Client:Connect

如果这个时候断开窗口,服务端也会接受到Client:Close

当然这只是一个最基本的扩展安装和调用实例。




猜你喜欢

转载自blog.csdn.net/jzj_xhj/article/details/80510292