TsgcHTTPServer › イベント › OnSendBufferFull

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;

イベントに戻る