gRPC İstemcisi

Delphi/C++Builder için yerel gRPC istemci bileşeni. HTTP/2 üzerinden tekli ve akış çağrıları, özel metadata, son tarihler, gzip sıkıştırması, interceptor'lar, otomatik yeniden deneme ve OpenSSL veya Windows SChannel ile TLS. Herhangi bir Protocol Buffers kodlayıcısı getirin; bileşen mesaj baytlarınızı çerçeveler ve gönderir.

TsgcGRPCClient

Yerel TsgcHTTP2Client taşıması üzerinde çalışan tipli bir gRPC istemcisi. Tekli ve üç akış modunun tümü, durum ve trailer ayrıştırma, harici gRPC çalışma zamanı veya C kütüphanesi yok.

Bileşen sınıfı

TsgcGRPCClient

Protokol

gRPC over HTTP/2 (RFC 9113)

Platformlar

Windows, macOS, Linux, iOS, Android

Sürüm

Enterprise

Taşımayı bağlayın, bir çağrı yapın

Bir forma TsgcHTTP2Client ve TsgcGRPCClient bırakın, taşımayı atayın, ardından servis metodunuzu istek baytlarıyla çağırın.

uses
  sgcHTTP2, sgcGRPC_Client, sgcGRPC_Classes, sgcGRPC_Types;

var
  HTTP2: TsgcHTTP2Client;
  GRPC: TsgcGRPCClient;
  oResponse: TsgcGRPCResponse;
begin
  // gRPC runs over an HTTP/2 transport
  HTTP2 := TsgcHTTP2Client.Create(nil);
  HTTP2.Host := 'grpc.example.com';
  HTTP2.Port := 443;
  HTTP2.TLS  := True;

  GRPC := TsgcGRPCClient.Create(nil);
  GRPC.Client := HTTP2;

  // default metadata sent on every call (auth, tracing...)
  GRPC.DefaultMetadata.Add('authorization', 'Bearer eyJ...');

  // unary call: pass your serialized protobuf message as TBytes
  oResponse := GRPC.Call('helloworld.Greeter', 'SayHello', RequestBytes);
  if oResponse.StatusCode = grpcOK then
    Memo1.Text := oResponse.DataString
  else
    ShowMessage('gRPC error: ' + oResponse.StatusMessage);
end;
// uses: sgcHTTP2, sgcGRPC_Client, sgcGRPC_Classes, sgcGRPC_Types
TsgcHTTP2Client *HTTP2 = new TsgcHTTP2Client(NULL);
HTTP2->Host = "grpc.example.com";
HTTP2->Port = 443;
HTTP2->TLS  = true;

TsgcGRPCClient *GRPC = new TsgcGRPCClient(NULL);
GRPC->Client = HTTP2;

GRPC->DefaultMetadata->Add("authorization", "Bearer eyJ...");

TsgcGRPCResponse *oResponse = GRPC->Call("helloworld.Greeter", "SayHello", RequestBytes);
if (oResponse->StatusCode == grpcOK)
  Memo1->Text = oResponse->DataString;

İçeriğinde neler var

sgcHTTP2 çerçeveleme motoru üzerine kurulu eksiksiz bir gRPC istemcisi. Dört çağrı türü, kanal ayarlama, metadata, son tarihler, interceptor'lar ve yeniden deneme.

Tekli çağrılar

Call bloke eder ve StatusCode, StatusMessage, Data ve Trailers içeren bir TsgcGRPCResponse döndürür. CallAsync hemen döner ve OnGRPCResponse tetikler.

Sunucu akışı

ServerStreamingCall bir istek gönderir ve bir mesaj akışı alır. Her mesaj OnGRPCStreamMessage tetikler; OnGRPCStreamEnd son durumla tetiklenir.

İstemci akışı

OpenClientStream akışı açar, SendStreamMessage her mesajı iletir ve CloseClientStream yarı kapatır ve tek sunucu yanıtını okur.

Çift yönlü akış

OpenBidiStream, SendBidiMessage ve CloseBidiStream, tek bir HTTP/2 akışı üzerinde tam çift yönlü bir alışveriş yürütür; her iki taraf da aynı anda gönderir.

Metadata, son tarihler, iptal

DefaultMetadata ve çağrı başına metadata, kimlik doğrulama ve izleme başlıklarını taşır. Çağrı başına zaman aşımı grpc-timeout başlığına eşlenir ve CancelCall devam eden bir akışı durdurur.

Kanal seçenekleri

ChannelOptions, tüm kanal için gzip Compression, ContentType, MaxMessageSize ve MaxMetadataSize değerlerini ayarlar.

Interceptor'lar, yeniden deneme, servis yapılandırması

Bir Interceptors zinciri her çağrıyı sarar, RetryPolicy yapılandırılabilir durum kodlarında yeniden dener ve ServiceConfig ile MetricsCollector metot başına politika ve sayaçlar ekler.

HTTP/2 ve TLS üzerine kurulu

Taşıma TsgcHTTP2Client'tır: ALPN h2, OpenSSL veya SChannel ile TLS ve grpc-status / grpc-message trailer'larının tipli durum kodlarına ayrıştırılması.

Protobuf'tan bağımsız, Google istemcileriyle

Çağrılar ham mesaj baytları alır ve döndürür, böylece herhangi bir Protocol Buffers kütüphanesi çalışır. Tipli Google Cloud istemcileri (Pub/Sub, Speech, Translation, Vision, BigQuery, Vertex AI) bunun üzerine gelir.

Spesifikasyonlar ve referanslar

Bu bileşenin uyguladığı protokol için yetkili kaynaklar.

Belgeler ve Demolar

Bileşen referansına doğrudan bağlanın, kullanıma hazır demo projesini alın ve denemeyi indirin.

Çevrimiçi Yardım — TsgcGRPCClient Bu bileşen için tam özellik, metot ve olay referansı.
Demo Projesi — Demos\21.GRPC\01.GRPC_Client Kullanıma hazır örnek proje. sgcWebSockets paketi içinde gelir — aşağıdan denemeyi indirin.
Teknik Belge (PDF) Delphi ve C++ Builder için özellikler, hızlı başlangıç, kod örnekleri ve birincil kaynak referansları — yalnızca bu bileşen.
Kullanıcı Kılavuzu (PDF) Kütüphanedeki her bileşeni kapsayan kapsamlı kılavuz.

Delphi'den gRPC servislerini çağırmaya hazır mısınız?

Ücretsiz denemeyi indirin ve Delphi uygulamalarınıza tekli ve akış gRPC ekleyin.