Swoole是什么?干什么?
swoole是php脚本语言的一个拓展,但是它不同于一般的php拓展,主要是实现了php在处理高并发,异步,高性能程序方面的能力。是一个网络通信和异步IO的引擎,比如,游戏领域,聊天软件系统。
swoole几个部分
swoole_server
swoole_client
swoole_event
swoole_async
swoole_process
swoole_buffer 内存区管理工具
swoole_table 内存表,为了解决进程间数据共享,同步加锁的问题
WebStock初步接触了解
安装swoole
GitHub地址 https://github.com/swoole/swoole-src
我选择的是1.10.4版本的
wget https://github.com/swoole/swoole-src/archive/v1.10.4.tar.gz
tar -zxvf v1.10.4.tar.gz
cd swoole-src-1.10.4/
phpize
./configure
make
make install
可能的问题:
1、 phpize执行失败
执行成功应该可以看到
如果报错 是因为缺少 php-devel
补充执行 yum install php-devel
1.5、./configure 失败 如果你是第一次使用源码包安装
没有gcc是无法编译执行源码的
yum install gcc
1.9、 ./config 失败提示 configure: error: Cannot find php-config. Please use --with-php-config=PATH
一般出现这个错误说明你执行 ./configure 时 --with-php-config 这个参数配置路径错误导致的。
修改为:
./configure --with-php-config=/usr/local/php/bin/php-config
就可以解决问题
上面的 /usr/local/php/ 是你的 php 安装路径 ,路径完整填写是 php-config的路径
如果不在上面那个路径通过下面这个命令查找查看安装路径的命令:
whereis php // which php :这个是查看正在运行的
2、make执行失败
缺少 pcre-devel 零件
yum install pcre-devel
安装完毕,修改配置文件
vim /etc/php.ini
如果此文件中有一句话是这样
; Note: packaged extension modules are now loaded via the .ini files
; found in the directory /etc/php.d; these are loaded by default.
表示模块配置文件和php主配置文件分开了,前往/etc/php.d/文件夹下设置 swoole.ini 文件(不存在就新建)
vim swoole.ini
输入
extension=swoole.so (开启swoole拓展)
重启服务,查看phpinfo内容
当然我不会告诉你,其实你直接输入
pecl install swoole 就可以一步完成安装的 =。=(需php7.0以上)
当然配置文件别忘了加上 extension=swoole.so
小测试(使用swoole的搭建一个基于websocket的聊天室)
服务端代码
(主要功能,接受客户端发送的信息,并返回给客户端)
<?php
$ws=new swoole_websocket_server('0.0.0.0',9996);
$ws->on('open',function($ws,$request){
var_dump($request->fd,$request->get,$request->server);
echo '链接成功'.PHP_EOL;
});
$ws->on('message',function($ws,$frame){
var_dump($frame);
echo "message: {$frame->data} , opcode:{$frame->opcode} \n";
$ws->push($frame->fd,"这是服务器还给你的消息server: {$frame->data}");
});
$ws->on('close',function($ws,$fd){
echo "client-{$fd} is closed\n";
});
$ws->start();
客户端代码
(主要效果临时登录,定义name,发送消息)