gRPC Client
Delphi/C++ Builder용 네이티브 gRPC 클라이언트 컴포넌트예요. HTTP/2를 통한 Unary 및 스트리밍 호출, 사용자 정의 메타데이터, 데드라인, gzip 압축, 인터셉터, 자동 재시도, OpenSSL 또는 Windows SChannel을 통한 TLS를 제공해요. 원하는 Protocol Buffers 인코더를 가져오면 컴포넌트가 메시지 바이트를 프레이밍하고 전송해요.
Delphi/C++ Builder용 네이티브 gRPC 클라이언트 컴포넌트예요. HTTP/2를 통한 Unary 및 스트리밍 호출, 사용자 정의 메타데이터, 데드라인, gzip 압축, 인터셉터, 자동 재시도, OpenSSL 또는 Windows SChannel을 통한 TLS를 제공해요. 원하는 Protocol Buffers 인코더를 가져오면 컴포넌트가 메시지 바이트를 프레이밍하고 전송해요.
네이티브 TsgcHTTP2Client 전송 위에서 동작하는 타입 지정 gRPC 클라이언트예요. Unary 및 세 가지 스트리밍 모드, 상태 및 트레일러 파싱을 지원하며, 외부 gRPC 런타임이나 C 라이브러리가 필요 없어요.
TsgcGRPCClient
gRPC over HTTP/2 (RFC 9113)
Windows, macOS, Linux, iOS, Android
Enterprise
폼에 TsgcHTTP2Client와 TsgcGRPCClient를 놓고 전송을 할당한 다음, 요청 바이트로 서비스 메서드를 호출하세요.
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;
sgcHTTP2 프레이밍 엔진 위에 구축된 완전한 gRPC 클라이언트예요. 네 가지 호출 유형, 채널 튜닝, 메타데이터, 데드라인, 인터셉터, 재시도를 제공해요.
Call은 블로킹되며 StatusCode, StatusMessage, Data, Trailers를 담은 TsgcGRPCResponse를 반환해요. CallAsync는 즉시 반환하고 OnGRPCResponse를 발생시켜요.
ServerStreamingCall은 하나의 요청을 보내고 메시지 스트림을 받아요. 각 메시지는 OnGRPCStreamMessage를 발생시키며, OnGRPCStreamEnd가 최종 상태와 함께 발생해요.
OpenClientStream이 스트림을 열고, SendStreamMessage가 각 메시지를 보내며, CloseClientStream이 절반 닫기 후 단일 서버 응답을 읽어요.
OpenBidiStream, SendBidiMessage, CloseBidiStream은 단일 HTTP/2 스트림에서 전이중 교환을 수행하여 양쪽이 동시에 전송해요.
DefaultMetadata와 호출별 메타데이터가 인증 및 추적 헤더를 전달해요. 호출별 타임아웃은 grpc-timeout 헤더로 매핑되며, CancelCall은 진행 중인 스트림을 중단해요.
ChannelOptions는 채널 전체에 대해 gzip Compression, ContentType, MaxMessageSize, MaxMetadataSize를 튜닝해요.
Interceptors 체인이 모든 호출을 감싸고, RetryPolicy가 구성 가능한 상태 코드에서 재시도하며, ServiceConfig와 MetricsCollector가 메서드별 정책과 카운터를 추가해요.
전송은 TsgcHTTP2Client예요: ALPN h2, OpenSSL 또는 SChannel을 통한 TLS, grpc-status / grpc-message 트레일러를 타입 지정 상태 코드로 파싱해요.
호출은 원시 메시지 바이트를 주고받으므로 모든 Protocol Buffers 라이브러리가 동작해요. 타입 지정 Google Cloud 클라이언트(Pub/Sub, Speech, Translation, Vision, BigQuery, Vertex AI)가 그 위에 함께 제공돼요.
이 컴포넌트가 구현하는 프로토콜의 공식 출처예요.
컴포넌트 레퍼런스 링크, 즉시 실행 가능한 데모 프로젝트, 체험판 다운로드를 제공해요.
| 온라인 도움말 — TsgcGRPCClient 이 컴포넌트의 전체 속성, 메서드, 이벤트 레퍼런스예요. | Open | |
| Demo Project — Demos\21.GRPC\01.GRPC_Client 즉시 실행 가능한 예제 프로젝트예요. sgcWebSockets 패키지에 포함돼 있어요 — 아래에서 체험판을 다운로드하세요. | Open | |
| 기술 문서 (PDF) 이 컴포넌트의 기능, 빠른 시작, Delphi 및 C++ Builder 코드 샘플, 기본 출처 참조를 포함해요. | Open | |
| 사용자 매뉴얼 (PDF) 라이브러리의 모든 컴포넌트를 다루는 종합 매뉴얼이에요. | Open |