1. 安装:
    pecl install swoole
  2. 多线程:
    <?php
    // 1. 使用命名空间
    use Swoole\Runtime;
    // 2. 开启协程
    Runtime::enableCoroutine();
    // 3. 定义数据
    $data = array();
    for($i = 0;$i < 10000;$i ++){
     array_push($data,$i);
    }
    // 4. 定义 10 个协程
    $thread = 10;
    for($j = 0;$j < $thread;$j ++){
     // 5. 使用协程
     go(function() use(&$data){
         while ($item = array_pop($data)){
             // todo ...
         }
     });
    }
  3. 长链接:
    1. 服务端:
      <?php
      // 1. 创建 websocket 对象
      $obj = new swoole_websocket_server('0.0.0.0',9502);
      // 2. 监听连接开始事件
      $obj->on('open',function($ws,$request){
      echo 'ID:';
      echo $request->fd;
      echo '请求头:';
      var_dump($request->server);
      $ws->push($request->fd,'服务端连接开始');
      });
      // 3. 监听接收消息事件
      $obj->on('message',function($ws,$frame){
      swoole_timer_tick(10000,function () use($ws,$frame){
       $ws->push($frame->fd,'服务端心跳检测');
      });
      echo '客户端消息:';
      echo $frame->data.PHP_EOL;
      $ws->push($frame->fd,'服务端消息');
      });
      // 4. 监听消息结束事件
      $obj->on('close',function($ws,$fd) {
      echo 'ID:';
      echo $fd;
      $ws->push($fd,'服务端消息结束');
      });
      // 5. 启动服务
      $obj->start();
    2. 客户端:
      1. 文件地址:
        http://file.job520.net/other/swoole/WebSocketClient.php
      2. 用法:
        <?php
        // 1. 包含文件
        require_once 'WebSocketClient.php';
        // 2. 实例化客户端
        $client = new WebSocketClient('127.0.0.1', 9502);
        // 3. 建立连接
        $client->connect();
        // 4. 发送消息
        $client->send('我是客户端');
文档更新时间: 2020-08-08 20:40   作者:lee