gRPC Client

Componente cliente gRPC nativo para Delphi/C++Builder. Llamadas unarias y de streaming sobre HTTP/2, metadatos personalizados, deadlines, compresión gzip, interceptores, reintento automático y TLS mediante OpenSSL o Windows SChannel. Usa cualquier codificador de Protocol Buffers; el componente enmarca y envía los bytes de tu mensaje.

TsgcGRPCClient

Un cliente gRPC tipado que se ejecuta sobre el transporte nativo TsgcHTTP2Client. Llamadas unarias y los tres modos de streaming, análisis de estado y trailers, sin runtime gRPC externo ni biblioteca en C.

Clase del componente

TsgcGRPCClient

Protocolo

gRPC sobre HTTP/2 (RFC 9113)

Plataformas

Windows, macOS, Linux, iOS, Android

Edición

Enterprise

Conecta el transporte, haz una llamada

Coloca un TsgcHTTP2Client y un TsgcGRPCClient en un formulario, asigna el transporte y luego invoca el método de tu servicio con los bytes de la petició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;

Qué incluye

Un cliente gRPC completo construido sobre el motor de framing sgcHTTP2. Cuatro tipos de llamada, ajuste del canal, metadatos, deadlines, interceptores y reintento.

Llamadas unarias

Call bloquea y devuelve un TsgcGRPCResponse con StatusCode, StatusMessage, Data y Trailers. CallAsync retorna de inmediato y dispara OnGRPCResponse.

Server streaming

ServerStreamingCall envía una petición y recibe un flujo de mensajes. Cada mensaje provoca OnGRPCStreamMessage; OnGRPCStreamEnd se dispara con el estado final.

Client streaming

OpenClientStream abre el flujo, SendStreamMessage envía cada mensaje y CloseClientStream cierra a medias y lee la única respuesta del servidor.

Streaming bidireccional

OpenBidiStream, SendBidiMessage y CloseBidiStream ejecutan un intercambio full-duplex sobre un único stream HTTP/2, con ambos lados enviando a la vez.

Metadatos, deadlines, cancelación

DefaultMetadata y los metadatos por llamada transportan cabeceras de autenticación y tracing. Un timeout por llamada se mapea a la cabecera grpc-timeout, y CancelCall aborta un flujo en curso.

Opciones de canal

ChannelOptions ajusta la Compression gzip, el ContentType, MaxMessageSize y MaxMetadataSize para todo el canal.

Interceptores, reintento, configuración del servicio

Una cadena de Interceptors envuelve cada llamada, RetryPolicy reintenta ante códigos de estado configurables, y ServiceConfig junto con MetricsCollector añaden política por método y contadores.

Construido sobre HTTP/2 y TLS

El transporte es TsgcHTTP2Client: ALPN h2, TLS mediante OpenSSL o SChannel, y análisis de los trailers grpc-status / grpc-message en códigos de estado tipados.

Agnóstico de Protobuf, con clientes de Google

Las llamadas toman y devuelven bytes de mensaje en bruto, así que cualquier biblioteca de Protocol Buffers funciona. Los clientes tipados de Google Cloud (Pub/Sub, Speech, Translation, Vision, BigQuery, Vertex AI) se entregan encima.

Especificaciones y referencias

Fuentes autorizadas del protocolo que implementa este componente.

Documentación y Demos

Enlace directo a la referencia del componente, descarga el proyecto demo listo para ejecutar y la prueba gratuita.

Ayuda en línea — TsgcGRPCClient Referencia completa de propiedades, métodos y eventos de este componente.
Proyecto demo — Demos\21.GRPC\01.GRPC_Client Proyecto de ejemplo listo para ejecutar. Se incluye en el paquete sgcWebSockets — descarga la prueba gratuita más abajo.
Documento técnico (PDF) Características, inicio rápido, ejemplos de código para Delphi y C++ Builder y referencias de fuentes primarias — solo este componente.
Manual de usuario (PDF) Manual completo que cubre todos los componentes de la biblioteca.

¿Listo para invocar servicios gRPC desde Delphi?

Descarga la prueba gratuita y añade gRPC unario y de streaming a tus aplicaciones Delphi.