gRPC Client

Native gRPC-clientcomponent voor Delphi/C++Builder. Unaire en streaming-aanroepen over HTTP/2, aangepaste metadata, deadlines, gzip-compressie, interceptors, automatische retry en TLS via OpenSSL of Windows SChannel. Breng je eigen Protocol Buffers-encoder mee; het component framet en verzendt je message-bytes.

TsgcGRPCClient

Een getypeerde gRPC-client die draait bovenop het native TsgcHTTP2Client-transport. Unaire en alle drie de streaming-modi, status- en trailer-parsing, geen externe gRPC-runtime of C-bibliotheek.

Componentklasse

TsgcGRPCClient

Protocol

gRPC over HTTP/2 (RFC 9113)

Platforms

Windows, macOS, Linux, iOS, Android

Editie

Enterprise

Bedraad het transport, doe een aanroep

Sleep een TsgcHTTP2Client en een TsgcGRPCClient op een form, wijs het transport toe en roep daarna je servicemethode aan met de request-bytes.

uses
  sgcHTTP2, sgcGRPC_Client, sgcGRPC_Classes, sgcGRPC_Types;

var
  HTTP2: TsgcHTTP2Client;
  GRPC: TsgcGRPCClient;
  oResponse: TsgcGRPCResponse;
begin
  // gRPC draait over een 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;

  // standaard-metadata die bij elke aanroep wordt verstuurd (auth, tracing...)
  GRPC.DefaultMetadata.Add('authorization', 'Bearer eyJ...');

  // unaire aanroep: geef je geserialiseerde protobuf-message door als 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;

Wat zit erin

Een complete gRPC-client gebouwd op de sgcHTTP2-framing-engine. Vier aanroeptypes, kanaalafstemming, metadata, deadlines, interceptors en retry.

Unaire aanroepen

Call blokkeert en retourneert een TsgcGRPCResponse met StatusCode, StatusMessage, Data en Trailers. CallAsync keert direct terug en activeert OnGRPCResponse.

Server-streaming

ServerStreamingCall verstuurt één request en ontvangt een stroom van messages. Elke message activeert OnGRPCStreamMessage; OnGRPCStreamEnd wordt geactiveerd met de uiteindelijke status.

Client-streaming

OpenClientStream opent de stream, SendStreamMessage pusht elke message en CloseClientStream sluit half af en leest het enkele serverantwoord.

Bidirectionele streaming

OpenBidiStream, SendBidiMessage en CloseBidiStream voeren een full-duplex-uitwisseling uit over één HTTP/2-stream, waarbij beide kanten tegelijk versturen.

Metadata, deadlines, annuleren

DefaultMetadata en per-aanroep-metadata dragen auth- en tracing-headers. Een per-aanroep-timeout wordt afgebeeld op de grpc-timeout-header en CancelCall breekt een lopende stream af.

Kanaalopties

ChannelOptions stemt gzip-Compression, ContentType, MaxMessageSize en MaxMetadataSize af voor het hele kanaal.

Interceptors, retry, service-config

Een Interceptors-keten omwikkelt elke aanroep, RetryPolicy probeert opnieuw bij configureerbare statuscodes en ServiceConfig plus MetricsCollector voegen per-methode-beleid en tellers toe.

Gebouwd op HTTP/2 en TLS

Het transport is TsgcHTTP2Client: ALPN h2, TLS via OpenSSL of SChannel en parsing van grpc-status- / grpc-message-trailers naar getypeerde statuscodes.

Protobuf-agnostisch, met Google-clients

Aanroepen nemen en retourneren ruwe message-bytes, dus elke Protocol Buffers-bibliotheek werkt. Getypeerde Google Cloud-clients (Pub/Sub, Speech, Translation, Vision, BigQuery, Vertex AI) komen daar bovenop.

Specificaties & referenties

Gezaghebbende bronnen voor het protocol dat dit component implementeert.

Documentatie & demo's

Deep-link naar de componentreferentie, pak het direct uitvoerbare demoproject en download de proefversie.

Online help — TsgcGRPCClient Volledige property-, methode- en event-referentie voor dit component.
Demoproject — Demos\21.GRPC\01.GRPC_Client Direct uitvoerbaar voorbeeldproject. Zit in het sgcWebSockets-package — download de proefversie hieronder.
Technisch document (PDF) Functies, snelstart, codevoorbeelden voor Delphi & C++ Builder en primaire bronreferenties — alleen dit component.
Gebruikershandleiding (PDF) Uitgebreide handleiding die elk component in de bibliotheek behandelt.

Klaar om gRPC-services aan te roepen vanuit Delphi?

Download de gratis proefversie en voeg unaire en streaming-gRPC toe aan je Delphi-toepassingen.