zoukankan      html  css  js  c++  java
  • tp5.1 swoole 实现异步处理

    客户端请求:
    <?php
    namespace appindexcontroller;

    class Index
    {
    public function index()
    {
    $client = new swoole_client(SWOOLE_SOCK_TCP, SWOOLE_SOCK_SYNC);
    $ret = $client->connect("192.168.10.10", 9502);
    if(empty($ret)) {
    echo 'error!connect to swoole_server failed';
    } else {
    dump('ccc');
    $client->send('blue');//这里只是简单的实现了发送的内容
    }

    echo 'success';
      }
    }

    服务端异步处理:
    <?php
    /**
    * Created by PhpStorm.
    * Date: 2019/10/30
    * Time: 9:54
    */
    namespace appindexcontroller;

    use thinkswooleServer;

    class Swoole extends Server
    {
    protected $host = '0.0.0.0';
    protected $port = 9502;
    protected $serverType = 'tcp';
    protected $option = [
    'worker_num'=> 4,
    'daemonize' => false,
    'backlog' => 128,
    'task_worker_num' => 4, //任务工作进程
    ];


    public function onConnect($serv, $fd)
    {
    echo "server: handshake success with fd{$fd} ";
    }


    public function onTask($serv, $task_id, $from_id, $data)
    {
    echo "New AsyncTask[id=$task_id]".PHP_EOL;
    //返回任务执行的结果
    sleep(5);
    $serv->finish("$data -> OK");
    }

    public function onFinish($serv, $task_id, $data)
    {
    echo "AsyncTask[$task_id] Finish: $data".PHP_EOL;
    }

    //接收客户端发送的数据
      public function onReceive($server, $fd, $from_id, $data)
    {
    $task_id = $server->task($data);
    echo "开始投递异步任务 id=$task_id ";
    //$server->send($fd, 'Swoole: '.$data);
    }

    public function onClose($serv, $fd)
    {

    }


    }

    启动服务 :php index.php index/Swoole/start
  • 相关阅读:
    助教小结4
    第二次作业
    助教小结5
    助教小结3
    work3
    助教小结1
    课后第一次作业
    助教小结2
    第一次团队作业
    悟透 JavaScript
  • 原文地址:https://www.cnblogs.com/wzjwffg/p/11765799.html
Copyright © 2011-2022 走看看