TsgcWSPServer_WAMP › Yöntemler › CallProgressResult
RPC hâlâ çalışırken çağırana bir ara (ilerlemeli) sonuç parçası gönderir; sonraki parçalar veya nihai bir CallResult beklenir.
procedure CallProgressResult(const aCallId: String; const aResult: String = '');
| Name | Type | Açıklama |
|---|---|---|
aCallId | const String | Uzaktan 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. |
aResult | const String | Bu 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. |
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.
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;