认识swoole
1、Swoole是一个PHP异步网络通信引擎,可以使用PHP语言开发高性能的异步并发TCP、UDP、Unix Socket、HTTP,WebSocket 服务。Swoole 可以广泛应用于互联网、移动通信、企业软件、云计算、网络游戏、物联网(IOT)、车联网、智能家居等领域。
2、一句话概括:php+swoole可以做异步网络通信。
3、中文社区:http://wiki.swoole.com/
4、下载地址:https://github.com/swoole/swoole-src/releases
环境搭建
1、环境准备:
centos 7、php7.3(7.2)、mysql5.7、nginx1.16(1.14).swoole:4.4.12
2、首先用宝塔快速安装 lnmp环境,搭建好好环境并且建立一个站点:swoole.xxx.com 如下:
3、安装swoole:
解压进入swoole:
使用phpize编译,由于我们使用宝塔安装,所以找到相关版本php的目录,然后编译:
/www/server/php/72/bin/phpize
然后:
./configure
会报如下错误:
提示没有找到php-config,所以使用下面的命令找php-config并且重新configure:
find / -name php-config
./configure --with-php-config=/www/server/php/72/bin/php-config
然后:
make && make install
安装完成之后找到当前版本的php的php.ini,把扩展加进去,然后重启php-fpm:
重启之后使用phpinfo查看,或是命令查看如下:
php -m | grep swoole
测试(第一个swoole程序)
1、把如下代码写入web服务的test.php文件:
<?php
//创建Server对象,监听 127.0.0.1:9501端口
$serv = new Swoole\Server("127.0.0.1", 2538);
//监听连接进入事件
$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 test.php 执行命令,这时服务端就启动了:
使用命令查看,端口是否被监听:
这时就可以使用telnet/netcat工具连接服务器:
telnet 127.0.0.1 9501
hello server
Server: hello server