🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# onBufferDrain ## 说明: ~~~ callback Worker::$onBufferDrain ~~~ 每个连接都有一个单独的应用层发送缓冲区,缓冲区大小由`TcpConnection::$maxSendBufferSize`决定,默认值为1MB,可以手动设置更改大小,更改后会对所有连接生效。 该回调在应用层发送缓冲区数据全部发送完毕后触发。一般与onBufferFull配合使用,例如在onBufferFull时停止向对端继续send数据,在onBufferDrain恢复写入数据。 ## 回调函数的参数 `$connection` 连接对象,即[TcpConnection实例](http://doc.workerman.net/tcp-connection.html),用于操作客户端连接,如[发送数据](http://doc.workerman.net/tcp-connection/send.html),[关闭连接](http://doc.workerman.net/tcp-connection/close.html)等 ## 范例 ~~~ $worker = new Worker('websocket://0.0.0.0:8484'); $worker->onBufferFull = function($connection) { echo "bufferFull and do not send again\n"; }; $worker->onBufferDrain = function($connection) { echo "buffer drain and continue send\n"; }; // 运行worker Worker::runAll(); ~~~ 提示:除了使用匿名函数作为回调,还可以[参考这里](http://doc.workerman.net/faq/callback_methods.html)使用其它回调写法。 ## 参见 onBufferFull 当连接的应用层发送缓冲区满时触发