TsgcWebSocketLoadBalancerServer › Events › OnFragmented
ロードバランサーが自身のセッションの 1 つで断片化された WebSocket フレームを受信したときに発生します。
property OnFragmented: TsgcWSFragmentedEvent;
// TsgcWSFragmentedEvent = procedure(Connection: TsgcWSConnection; const Data: TMemoryStream; const OpCode: TOpCode; const Continuation: Boolean) of object
—
OnFragmented は基盤となる HTTP/WebSocket サーバーから継承され、ロードバランサーによって直接終端された接続で受信したフラグメント化されたフレームごとに発生します。Data はフラグメントペイロード、OpCode は元のメッセージがテキストかバイナリかを識別し、Continuation は最初のフラグメント以降のすべてのフラグメントで True になります。Options.FragmentedMessages を通じてこのイベントを有効にしてください。バックエンドに転送されるセッションで受信したフラグメントには、フォワーダーが使用する Handled フラグも公開する OnClientFragmented を代わりに処理してください。
procedure OnFragmented(Connection: TsgcWSConnection; const Data: TMemoryStream;
const OpCode: TOpCode; const Continuation: Boolean);
begin
Log(Format('Fragment: op=%d cont=%s size=%d',
[Ord(OpCode), BoolToStr(Continuation, True), Data.Size]));
end;