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('我是客户端');
文档更新时间: 2024-04-20 10:57   作者:lee