美文网首页
Swoole第一章

Swoole第一章

作者: 织毛衣的手 | 来源:发表于2018-04-26 23:03 被阅读0次

    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执行失败

    执行成功应该可以看到
    
    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,发送消息)

    相关文章

      网友评论

          本文标题:Swoole第一章

          本文链接:https://www.haomeiwen.com/subject/ttdllftx.html