Swoole
  1. 入门
    1. Swoole - 入门 - 安装
    2. Swoole - 入门 - 创建TCP服务器
    3. Swoole - 入门 - 创建UDP服务器
    4. Swoole - 入门 - 创建HTTP服务器
    5. Swoole - 入门 - 创建websocket服务器
    6. Swoole - 入门 - 创建同步TCP客户端
    7. Swoole - 入门 - 创建异步TCP客户端
    8. Swoole - 入门 - 网络通信协议设计
    9. Swoole - 入门 - 使用异步客户端(MySQL,Redis,Http)

Swoole - 入门 - 创建异步TCP客户端

程序员日记      2019-09-20

创建异步TCP客户端

<?php 
$client = new swoole_client(SWOOLE_SOCK_TCP, SWOOLE_SOCK_ASYNC);
//注册连接成功回调
$client->on("connect", function($cli) {
    $cli->send("hello world\n");
});
//注册数据接收回调
$client->on("receive", function($cli, $data){
    echo "Received: ".$data."\n";
});
//注册连接失败回调
$client->on("error", function($cli){
    echo "Connect failed\n";
});
//注册连接关闭回调
$client->on("close", function($cli){
    echo "Connection close\n";
});
//发起连接
$client->connect('192.168.0.99', 9501, 0.5);

说明

异步客户端与同步客户端不同,异步客户端是非阻塞的。可以用于编写高并发的程序。

异步客户端需要先设置好回调函数,有4个事件回调必须设置。

onConnect:连接成功触发

onError:连接失败触发

onReceive:收到数据触发

onClose:连接关闭触发

$client->connect() 发起连接的操作会立即返回,不存在任何等待。当对应的IO事件完成后,swoole底层会自动调用设置好的回调函数。


启动服务(服务在我们《Swoole-入门-创建TCP服务器》这篇文章中)

php server.php

启动客户端

php client.php
Server: hello world