onConnect
function onConnect(swoole_client $client)
客户端连接服务器成功后会回调onConnect
函数
- TCP客户端必须设置
onConnect
回调 - UDP客户端可选设置
onConnect
回调,socket创建成功后会立即回调onConnect
。
onClose
function onClose(swoole_client $client)
连接被关闭时回调onClose
函数,服务器或客户端主动关闭时都会触发onClose
事件。
onError
function onError(swoole_client $client)
连接服务器失败时回调onError
函数,UDP客户端没有此回调函数。
onReceive
function onReceive(swoole_client $client, string $data)
客户端接收到来自服务器端的数据时会回调onReceive
函数。
-
$data
是服务器发送的数据,可以为字符串文本或二进制内容。 -
swoole_client
启用了eof/length
检测后,onReceive
一定会收到一个完整的数据包。
onBufferEmpty
function onBufferEmpty(Swoole\Client $client)
当缓存区低于最低水位线时会触发onBufferEmpty
事件
- 设置
$client->buffer_low_watermark
来控制缓冲区低水位线 - 触发
onBufferEmpty
事件后表明当前发送队列中的数据已经被发出,可以继续向服务器发送数据。
例如:客户端发送4MB的数据,实际传输可能需要一段时间,此时如果立即close
关闭操作,可能只有小部分数据传输成功,大部分数据在发送队列中排队等待发送,close
关闭时会丢失这些数据。可配合使用onBufferEmpty
等待发送队列为空时进行close
操作来解决这种问题。
onBufferFull
function onBufferFull(Swoole\Client $client)
当缓冲区达到最高水位时触发此事件
- 设置
$client->buffer_high_watermark
选项来控制缓存区高水位线 - 触发
onBufferFull
表明发送队列已触顶即将塞满,不能再向服务器发送数据。