zoukankan      html  css  js  c++  java
  • linux-centos7服务器环境下,配置swoole的异步扩展ext-async-4.4.12

    swoole版本v4.4.12,所以下载ext-async-4.4.12,git地址:https://github.com/swoole/ext-async,自行选择对应的版本
    下载后上传到服务器,
    zip的解压命令是:unzip file

    [root@localhost file]# cd ext-async-master 
    [root@localhost ext-async-master]# phpize 
    [root@localhost ext-async-master]# find / -name php-config 
    /www/server/php/72/src/scripts/php-config /www/server/php/73/bin/php-config 
    [root@localhost ext-async-master]# ./configure --with-php-config=/www/server/php/73/bin/php-config 
    [root@localhost ext-async-master]# make -j 4 
    [root@localhost ext-async-master]# sudo make install 
    Installing shared extensions: /www/server/php/72/lib/php/extensions/no-debug-non-zts-20170718/ 
    [root@localhost ext-async-master]# find / -name php.ini /www/server/php/72/etc/php.ini 
    [root@localhost ext-async-master]# vi /www/server/php/72/etc/php.ini //添加 extension=swoole_async.so 
    [root@localhost ext-async-master]# /etc/rc.d/init.d/php-fpm-72 restart 
    [root@localhost ext-async-master]# php -m | grep swoole swoole_async
    

    安装成功后有两个demo可以学习:

    创建swoole的服务端文件server.php

    <?php
    // 1. 创建swoole 默认创建的是一个同步的阻塞tcp服务
    $host = "192.168.126.129"; // 0.0.0.0 代表接听所有
    #$host = "127.0.0.1"; // 0.0.0.0 代表接听所有
    // 创建Server对象,监听 127.0.0.1:9501端口 // 默认是tcp
    $serv = new SwooleServer($host, 9501);
    // 2. 注册事件
    $serv->on('Start', function($serv){ echo "启动swoole 监听的信息tcp:$host:9501
    "; });
    //监听连接进入事件
    $serv->on('Connect', function ($serv, $fd) { echo "Client: Connect.
    "; });
    
    //监听数据接收事件
    $serv->on('Receive', function ($serv, $fd, $from_id, $data) { $serv->send($fd, "Server: ".$data); });
    //监听连接关闭事件
    $serv->on('Close', function ($serv, $fd) { echo "Client: Close.
    "; });
    // 3. 启动服务器
    // 阻塞
    $serv->start(); // 阻塞与非阻塞
    ?>
    
    

    创建swoole客户端swoole_tcp_client.php

    <?php
    
    $client = new swoole_client(SWOOLE_SOCK_TCP);
    // 连接到服务器
    if(!$client->connect('192.168.126.129',9501,0.5))
    {
        die("connect failed.");
    }
    
    // 向服务器发送数据
    if(!$client->send("hello world"))
    {
        die("send failed.");
    }
    // 从服务器接受数据
    $data = $client->recv();
    if(!$data)
    {
        die("recv failed.");
    }
    echo $data."接收到了
    ";
    // 关闭连接
    $client->close();
    echo "这是同步客户端.
    ";
    
    

    创建swoole异步客户端文件swoole_async_tcp_client.php

    <?php
    // 异步客户端
    use SwooleAsyncClient;
    $client = new Client(SWOOLE_SOCK_TCP);
    
    $client->on("connect",function(Client $cli){
        //$cli->send("GET /HTTP/1.1 
    
    ");
        $cli->send("l am laohe 
    
    ");
    });
    
    $client->on("receive", function(Client $cli,$data){
        echo "Receive:$data";
        sleep(1);
        $cli->send("1
    ");
    });
    $client->on("error",function(Client $cli){
        echo "error
    ";
    });
    $client->on("close",function(Client $cli){
        echo "close 
    ";
    });
    
    $client->connect('192.168.126.129',9501);
    
    echo "这是异步客户端
    ";
    
    /*
     * 订单事务 需要时间  可以先给发送给swoole服务端 不等待 直接返回生成成功,等swoole服务端返回结果后在返回正确的。???
     *
     * */
    
  • 相关阅读:
    获取父页面标签对象,获取当前标签div高度
    响应回车事件
    解决checkbox的attr(checked)一直为undefined问题
    返回键 隐藏、、收起键盘textView|textField
    ios9 之后,Xcode7不推荐使用UIAlertView,改用UIAlertController+UIAlertAction(按钮)
    判断是否是 首次 进入app,,以及Xcode7之后前导页的设置
    根据 字数 确定 UI控件高度
    对于限制UITextView输入的字符数
    block 反向传值回调
    NSUserDefault的使用
  • 原文地址:https://www.cnblogs.com/justsus/p/13897585.html
Copyright © 2011-2022 走看看