onBufferDrain

설명:

callback Worker::$onBufferDrain

각 연결에는 개별 애플리케이션 레이어 전송 버퍼가 있으며, 버퍼 크기는 TcpConnection::$maxSendBufferSize에 의해 결정됩니다. 기본값은 1MB이며, 수동으로 크기를 설정하여 변경할 수 있습니다. 변경 후에는 모든 연결에 적용됩니다.

이 콜백은 애플리케이션 레이어 전송 버퍼 데이터가 모두 전송된 후에 트리거됩니다. 일반적으로 onBufferFull과 함께 사용되며, 예를 들어 onBufferFull 시 대상에게 계속 데이터를 전송하지 않고, onBufferDrain에서 데이터 전송을 재개합니다.

콜백 함수의 매개변수

$connection

연결 객체로, TcpConnection 인스턴스입니다. 클라이언트 연결 작업에 사용되며, 예를 들어 데이터 전송하기, 연결 닫기 등의 작업에 사용됩니다.

예제

use Workerman\Worker;
use Workerman\Connection\TcpConnection;
require_once __DIR__ . '/vendor/autoload.php';

$worker = new Worker('websocket://0.0.0.0:8484');
$worker->onBufferFull = function(TcpConnection $connection)
{
    echo "bufferFull and do not send again\n";
};
$worker->onBufferDrain = function(TcpConnection $connection)
{
    echo "buffer drain and continue send\n";
};
// 워커 실행
Worker::runAll();

提示:익명 함수를 콜백으로 사용하는 것 외에도 여기에서 참고하세요 다른 콜백 작성 방법을 사용할 수 있습니다.

참조

onBufferFull 연결의 애플리케이션 레이어 전송 버퍼가 가득 찰 때 트리거됩니다.