TsgcHTTPServer › Zdarzenia › OnSendBufferFull
Wywoływane, gdy kolejka wychodząca połączenia klienta osiągnie skonfigurowany limit, zanim zostanie zastosowana zasada przepełnienia. Odziedziczone ze współdzielonego silnika serwera; patrz Uwagi.
property OnSendBufferFull: TsgcWSSendBufferFullEvent;
// TsgcWSSendBufferFullEvent = procedure(Connection: TsgcWSConnection; const QueueSize: Integer; var DropMessage: Boolean) of object
—
OnSendBufferFull należy do tego samego mechanizmu kolejki wychodzącej per połączenie, używanego we wszystkich komponentach serwera sgc: gdy kolejkowanie jest włączone, a kolejka połączenia zawiera już skonfigurowaną maksymalną liczbę wiadomości, zdarzenie to jest wywoływane z odpowiednim Connection i bieżącym QueueSize, zanim zostanie zastosowana zasada przepełnienia (odrzucenie najstarszej, odrzucenie najnowszej lub rozłączenie). TsgcHTTPServer nie publikuje właściwości włączającej i konfigurującej tę kolejkę i nigdy nie wysyła przez nią wiadomości WebSocket, więc w praktyce to zdarzenie nie jest wywoływane w tym komponencie; pozostaje opublikowane dla zgodności interfejsu z innymi komponentami serwera zbudowanymi na tym samym silniku. DropMessage przychodzi jako True, ale ponieważ warunek wywołujący to zdarzenie tutaj nie występuje, pozostawienie go bez zmian nie ma żadnego zauważalnego efektu.
procedure OnSendBufferFull(Connection: TsgcWSConnection; const QueueSize: Integer;
var DropMessage: Boolean);
begin
WriteLn('#slow consumer ' + Connection.Guid + ': ' + IntToStr(QueueSize) + ' messages queued');
end;