6.1 同步异步
anlondon Lv6

6.1 同步异步

! swoole4.0后不再支持异步回调模块

同步通信 sync

适用场景:消息队列,硬件通信等,需要及时通信的应用场景

在客户端client.php中

Swoole\Client->connect(string $host,int $port, float $timeout = 0.5, int $flag = 0 ): bool

  • int $flag
    • 在 UDP 类型时表示是否启用 udp_connect 设定此选项后将绑定 $host 与 $port,此 UDP 将会丢弃非指定 host/port 的数据包。
    • 在 TCP 类型,$flag=1 表示设置为非阻塞 socket,之后此 fd 会变成异步 IO,connect 会立即返回。如果将 $flag 设置为 1,那么在 send/recv 前必须使用 swoole_client_select 来检测是否完成了连接。
  • 同步阻塞
    • connect 方法会阻塞,直到连接成功并返回 true。这时候就可以向服务器端发送数据或者收取数据了。
      1
      2
      $client = new Swoole\Client(SWOOLE_SOCK_TCP,SWOOLE_SOCK_SYNC);
      //SWOOLE_SOCK_SYNC 添加该参数开启同步通信

异步通信 async

 Comments