TsgcHTTPServer › イベント › OnSendBufferFull
クライアント接続の送信キューが設定された上限に達したときに、オーバーフローポリシーが適用される前に発生します。共有サーバーエンジンから継承されています。詳細は解説を参照してください。
property OnSendBufferFull: TsgcWSSendBufferFullEvent;
// TsgcWSSendBufferFullEvent = procedure(Connection: TsgcWSConnection; const QueueSize: Integer; var DropMessage: Boolean) of object
—
OnSendBufferFull は、sgc サーバーコンポーネント全体で使用されている、同じ接続ごとの送信キューの仕組みに属しています。キューイングが有効で、接続のキューがすでに設定された最大メッセージ数を保持している場合、オーバーフローポリシー(最も古いメッセージの破棄、新しいメッセージの破棄、または切断)が適用される前に、影響を受ける Connection と現在の QueueSize を伴ってこのイベントが発生します。TsgcHTTPServer は、このキューを有効化・設定するプロパティを公開しておらず、このキューを通じて WebSocket メッセージを送信することも決してないため、実際にはこのコンポーネント上でこのイベントが発生することはありません。同じエンジン上に構築された他のサーバーコンポーネントとのインターフェース互換性のために公開されたままになっています。DropMessage は True として渡されますが、このイベントを発生させる条件がここでは発生しないため、変更せずそのままにしても観測可能な効果はありません。
procedure OnSendBufferFull(Connection: TsgcWSConnection; const QueueSize: Integer;
var DropMessage: Boolean);
begin
WriteLn('#slow consumer ' + Connection.Guid + ': ' + IntToStr(QueueSize) + ' messages queued');
end;