gRPC Client

Native gRPC-Client-Komponente für Delphi/C++Builder. Unäre und Streaming-Aufrufe über HTTP/2, benutzerdefinierte Metadaten, Deadlines, gzip-Komprimierung, Interceptors, automatischer Retry und TLS über OpenSSL oder Windows SChannel. Bringen Sie einen beliebigen Protocol-Buffers-Encoder mit; die Komponente rahmt und versendet die Bytes Ihrer Nachricht.

TsgcGRPCClient

Ein typisierter gRPC-Client, der auf dem nativen TsgcHTTP2Client-Transport läuft. Unäre und alle drei Streaming-Modi, Status- und Trailer-Parsing, ohne externe gRPC-Laufzeit oder C-Bibliothek.

Komponentenklasse

TsgcGRPCClient

Protokoll

gRPC über HTTP/2 (RFC 9113)

Plattformen

Windows, macOS, Linux, iOS, Android

Edition

Enterprise

Transport verbinden, Aufruf ausführen

Platzieren Sie einen TsgcHTTP2Client und einen TsgcGRPCClient auf einem Formular, weisen Sie den Transport zu und rufen Sie dann Ihre Service-Methode mit den Anfrage-Bytes auf.

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;

Was steckt drin

Ein vollständiger gRPC-Client, der auf der sgcHTTP2-Framing-Engine aufbaut. Vier Aufruftypen, Channel-Tuning, Metadaten, Deadlines, Interceptors und Retry.

Unäre Aufrufe

Call blockiert und gibt ein TsgcGRPCResponse mit StatusCode, StatusMessage, Data und Trailers zurück. CallAsync kehrt sofort zurück und löst OnGRPCResponse aus.

Server-Streaming

ServerStreamingCall sendet eine Anfrage und empfängt einen Strom von Nachrichten. Jede Nachricht löst OnGRPCStreamMessage aus; OnGRPCStreamEnd wird mit dem finalen Status ausgelöst.

Client-Streaming

OpenClientStream öffnet den Stream, SendStreamMessage schiebt jede Nachricht hinein und CloseClientStream schließt halbseitig und liest die einzelne Server-Antwort.

Bidirektionales Streaming

OpenBidiStream, SendBidiMessage und CloseBidiStream führen einen Vollduplex-Austausch über einen einzelnen HTTP/2-Stream aus, bei dem beide Seiten gleichzeitig senden.

Metadaten, Deadlines, Abbruch

DefaultMetadata und Metadaten pro Aufruf transportieren Auth- und Tracing-Header. Ein Timeout pro Aufruf wird auf den grpc-timeout-Header abgebildet, und CancelCall bricht einen laufenden Stream ab.

Channel-Optionen

ChannelOptions stellt gzip-Compression, ContentType, MaxMessageSize und MaxMetadataSize für den gesamten Channel ein.

Interceptors, Retry, Service-Konfiguration

Eine Interceptors-Kette umschließt jeden Aufruf, RetryPolicy wiederholt bei konfigurierbaren Statuscodes, und ServiceConfig plus MetricsCollector ergänzen Richtlinien und Zähler pro Methode.

Aufgebaut auf HTTP/2 und TLS

Der Transport ist TsgcHTTP2Client: ALPN h2, TLS über OpenSSL oder SChannel und das Parsen von grpc-status- / grpc-message-Trailern in typisierte Statuscodes.

Protobuf-unabhängig, mit Google-Clients

Aufrufe nehmen und liefern rohe Nachrichten-Bytes, sodass jede Protocol-Buffers-Bibliothek funktioniert. Typisierte Google-Cloud-Clients (Pub/Sub, Speech, Translation, Vision, BigQuery, Vertex AI) werden obendrauf geliefert.

Spezifikationen & Referenzen

Maßgebliche Quellen für das Protokoll, das diese Komponente implementiert.

Dokumentation & Demos

Springe direkt zur Komponentenreferenz, lade das einsatzbereite Demo-Projekt herunter und teste die Testversion.

Online Help — TsgcGRPCClient Vollständige Eigenschaften-, Methoden- und Ereignisreferenz für diese Komponente.
Demo Project — Demos\21.GRPC\01.GRPC_Client Einsatzbereites Beispielprojekt. Im sgcWebSockets-Paket enthalten — lade unten die Testversion herunter.
Technisches Dokument (PDF) Funktionen, Schnellstart, Codebeispiele für Delphi & C++ Builder und Primärquellenreferenzen — nur für diese Komponente.
Benutzerhandbuch (PDF) Umfassendes Handbuch zu jeder Komponente der Bibliothek.

Bereit, gRPC-Dienste aus Delphi aufzurufen?

Laden Sie die kostenlose Testversion herunter und ergänzen Sie Ihre Delphi-Anwendungen um unäres und Streaming-gRPC.