TsgcWSPServer_WAMPYöntemler › CallProgressResult

CallProgressResult Yöntem

RPC hâlâ çalışırken çağırana bir ara (ilerlemeli) sonuç parçası gönderir; sonraki parçalar veya nihai bir CallResult beklenir.

Sözdizimi

procedure CallProgressResult(const aCallId: String; const aResult: String = '');

Parametreler

NameTypeAçıklama
aCallIdconst StringUzaktan yordam çağrıldığında istemci tarafından oluşturulan tanımlayıcı. Çağrı, bir ilerleme parçası gönderildikten sonra beklemede kalır, bu nedenle aynı aCallId her ek parça ve nihai CallResult için yeniden kullanılır.
aResultconst StringBu yığın için kısmi yük. Herhangi bir dize değerine izin verilir (sayı, metin, JSON parçası vb.); çağıran, yığınları gönderildikleri sırayla alır.

Remarks

Tek bir RPC birden fazla veri parçası ürettiğinde (akış yanıtları, sayfalandırılmış sonuçlar, uzun süren hesaplamalar vb.) bu yöntemi kullanın. Her çağrı, çağırana bir WAMP CALL_PROGRESS_RESULT çerçevesi yazar ancak CallResult'tan farklı olarak, çağrıyı bekleyen listeden kaldırmaz: sunucu, aynı aCallId ile CallResult (başarılı) veya CallError (başarısız) çağırarak alışverişi sonunda bitirmelidir. aCallId bekleyen bir çağrıya karşılık gelmiyorsa yöntem sessizce hiçbir şey yapmaz. Örnek: 20 öğe veren bir prosedür için, 1..19 öğelerini CallProgressResult ile ve 20. öğeyi CallResult ile gönderin.

Örnek

procedure TForm1.sgcWSPServer_WAMP1Call(Connection: TsgcWSConnection;
  const CallId, ProcURI: string; Arguments: TStringList);
var
  i: Integer;
begin
  if ProcURI = 'com.example.stream' then
  begin
    for i := 1 to 19 do
      sgcWSPServer_WAMP1.CallProgressResult(CallId, IntToStr(i));
    sgcWSPServer_WAMP1.CallResult(CallId, '20');
  end;
end;

Yöntemlere Dön