Client gRPC

Composant client gRPC natif pour Delphi/C++Builder. Appels unary et streaming sur HTTP/2, métadonnées personnalisées, deadlines, compression gzip, intercepteurs, retry automatique et TLS via OpenSSL ou Windows SChannel. Apporte n'importe quel encodeur Protocol Buffers ; le composant met en trame et envoie les octets de ton message.

TsgcGRPCClient

Un client gRPC typé qui s'exécute au-dessus du transport natif TsgcHTTP2Client. Appels unary et les trois modes de streaming, analyse du statut et des trailers, aucun runtime gRPC externe ni bibliothèque C.

Classe du composant

TsgcGRPCClient

Protocole

gRPC sur HTTP/2 (RFC 9113)

Plateformes

Windows, macOS, Linux, iOS, Android

Édition

Enterprise

Câble le transport, fais un appel

Pose un TsgcHTTP2Client et un TsgcGRPCClient sur une fiche, assigne le transport, puis appelle la méthode de ton service avec les octets de la requête.

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;

Ce qu’il y a à l’intérieur

Un client gRPC complet construit sur le moteur de framing sgcHTTP2. Quatre types d'appels, réglage du canal, métadonnées, deadlines, intercepteurs et retry.

Appels unary

Call bloque et renvoie un TsgcGRPCResponse avec StatusCode, StatusMessage, Data et Trailers. CallAsync renvoie immédiatement et déclenche OnGRPCResponse.

Server streaming

ServerStreamingCall envoie une requête et reçoit un flux de messages. Chaque message déclenche OnGRPCStreamMessage ; OnGRPCStreamEnd se déclenche avec le statut final.

Client streaming

OpenClientStream ouvre le stream, SendStreamMessage pousse chaque message, et CloseClientStream effectue le half-close et lit l'unique réponse du serveur.

Streaming bidirectionnel

OpenBidiStream, SendBidiMessage et CloseBidiStream exécutent un échange full-duplex sur un seul stream HTTP/2, les deux côtés émettant en même temps.

Métadonnées, deadlines, annulation

DefaultMetadata et les métadonnées par appel transportent les en-têtes d'auth et de tracing. Un timeout par appel se mappe sur l'en-tête grpc-timeout, et CancelCall interrompt un stream en cours.

Options de canal

ChannelOptions règle la Compression gzip, le ContentType, MaxMessageSize et MaxMetadataSize pour l'ensemble du canal.

Intercepteurs, retry, service config

Une chaîne d'Interceptors enveloppe chaque appel, RetryPolicy réessaie sur des codes de statut configurables, et ServiceConfig plus MetricsCollector ajoutent une politique et des compteurs par méthode.

Construit sur HTTP/2 et TLS

Le transport est TsgcHTTP2Client : ALPN h2, TLS via OpenSSL ou SChannel, et analyse des trailers grpc-status / grpc-message en codes de statut typés.

Indépendant de protobuf, avec clients Google

Les appels prennent et renvoient des octets de message bruts, donc n'importe quelle bibliothèque Protocol Buffers fonctionne. Des clients Google Cloud typés (Pub/Sub, Speech, Translation, Vision, BigQuery, Vertex AI) sont fournis par-dessus.

Spécifications et références

Sources de référence pour le protocole implémenté par ce composant.

Documentation et démos

Lien direct vers la référence du composant, récupère le projet de démo prêt à exécuter et télécharge l’essai.

Aide en ligne — TsgcGRPCClient Référence complète des propriétés, méthodes et événements de ce composant.
Projet de démo — Demos\21.GRPC\01.GRPC_Client Projet d’exemple prêt à exécuter. Livré dans le paquet sgcWebSockets — télécharge l’essai ci-dessous.
Document technique (PDF) Fonctionnalités, démarrage rapide, exemples de code pour Delphi & C++ Builder et références de sources primaires — ce composant uniquement.
Manuel utilisateur (PDF) Manuel exhaustif couvrant chaque composant de la bibliothèque.

Prêt à appeler des services gRPC depuis Delphi ?

Télécharge l'essai gratuit et ajoute du gRPC unary et streaming à tes applications Delphi.