Client
异步非阻塞客户端,回调式编程的风格。
onConnect
客户端连接服务器成功后会回调此函数。
function onConnect(Client $client)
TCP
客户端必须设置onConnect
回调UDP
客户端可选设置onConnect
,socket
创建成功会立即回调onConnect
onError
连接服务器失败时会回调此函数。
function onError(Client $client)
UDP
客户端没有onError
回调
onReceive
客户端收到来自于服务器端的数据时会回调此函数
function onReceive(Client $client, string $data)
$data
是服务器端发送的数据,可以为文本或者二进制内容- 启用了
eof/length
检测后,onReceive
一定会收到一个完整的数据包
onClose
连接被关闭时回调此函数。
function onClose(Client $client)
Server
端关闭或Client
端主动关闭都会触发onClose
事件
onBufferFull
当缓存区达到最高水位时触发此事件。
function onBufferFull(Client $cli);
- 设置
client->buffer_high_watermark
选项来控制缓存区高水位线 - 触发
onBufferFull
表明发送队列已触顶即将塞满,不能再向服务器端发送数据
onBufferEmpty
当缓存区低于最低水位线时触发此事件。
function onBufferEmpty(Client $cli);
- 设置
client->buffer_low_watermark
来控制缓存区低水位线 - 触发此事件后,表明当前发送队列中的数据已被发出,可以继续向服务器端发送数据
使用实例
use Swoole\Async\Client;
$client = new Client(SWOOLE_SOCK_TCP);
$client->on("connect", function(Client $cli) {
$cli->send("GET / HTTP/1.1\r\n\r\n");
});
$client->on("receive", function(Client $cli, $data){
echo "Receive: $data";
$cli->send(str_repeat('A', 100)."\n");
sleep(1);
});
$client->on("error", function(Client $cli){
echo "error\n";
});
$client->on("close", function(Client $cli){
echo "Connection close\n";
});
$client->connect('127.0.0.1', 9501);
异步客户端只能使用在
cli
命令行环境