TsgcWebSocketHTTPServerEreignisse › OnFragmented

OnFragmented Ereignis

Wird ausgelöst, wenn ein Fragment einer Nachricht empfangen wird (nur wenn Options.FragmentedMessages frgAll oder frgOnlyFragmented ist).

Syntax

property OnFragmented: TsgcWSFragmentedEvent;
// TsgcWSFragmentedEvent = procedure(Connection: TsgcWSConnection; const Data: TMemoryStream; const OpCode: TOpCode; const Continuation: Boolean) of object

Standardwert

Hinweise

Standardmäßig (Options.FragmentedMessages = frgOnlyBuffer) puffert der Server die Fragmente einer WebSocket-Nachricht und löst OnMessage oder OnBinary aus, sobald die vollständige Payload empfangen wurde. Setzen Sie FragmentedMessages auf frgOnlyFragmented, um pro Fragment nur OnFragmented zu empfangen, oder auf frgAll, um pro Fragment OnFragmented und anschließend OnMessage/OnBinary zu empfangen, wenn die Nachricht vollständig ist. Der Data-Parameter ist ein TMemoryStream mit den Bytes des aktuellen Fragments, OpCode gibt den ursprünglichen Frame-Typ an (Text, Binär, Continuation...), und Continuation ist True, solange weitere Fragmente erwartet werden, und False beim letzten Fragment. Dieses Ereignis ist nützlich, um den Fortschritt großer Uploads zu melden.

Beispiel


procedure OnFragmented(Connection: TsgcWSConnection; const Data: TMemoryStream;
  const OpCode: TOpCode; const Continuation: Boolean);
begin
  ShowProgress(Data.Size);
  if not Continuation then
    SaveStream(Data);
end;

Zurück zu Ereignissen