sgcHTTP: komponenty HTTP/2, gRPC i Google Cloud dla Delphi i C++ Builder
Produkt samodzielny HTTP/2, gRPC i Google Cloud

sgcHTTP: komponenty HTTP/2, gRPC i Google Cloud dla Delphi i C++ Builder

Pięć komponentów klienckich pokrywa trzy zadania. TsgcHTTP2Client mówi w HTTP/2, z multipleksowanymi strumieniami przez jedno połączenie TLS i kompresją nagłówków HPACK. TsgcGRPCClient to zbudowany na nim klient gRPC, do wywołań unarnych i strumieniowych Protocol Buffers. Trzy kolejne klasy sięgają do Google Cloud przez zwykłe HTTPS: Pub/Sub, Calendar i Firebase Cloud Messaging. sgcHTTP jest samodzielny, zawiera środowisko uruchomieniowe sgcWebSockets Core, na którym zbudowana jest cała piątka.

Pełny kod źródłowy
Delphi od 7 do 13 i C++ Builder
Środowisko w zestawie sgcWebSockets Core Środowisko HTTP, TLS i JSON pod każdym klientem
HTTP/2 TsgcHTTP2Client
gRPC TsgcGRPCClient
2 Komponenty na palecie Klient HTTP/2 i klient gRPC, jedna strona na palecie
5 Klas klienckich łącznie HTTP/2, gRPC oraz trzy klienty Google Cloud
3 Usług Google Cloud Pub/Sub, Calendar i Firebase Cloud Messaging
100% Kod źródłowy w zestawie Wszystkich pięciu klientów oraz dołączone środowisko uruchomieniowe Core
12 Miesięcy aktualizacji Każde wydanie opublikowane w czasie aktywności twojej licencji

Dwie rzeczy, które warto wiedzieć najpierw

Czego sgcHTTP od ciebie wymaga i czego nie. Obie odpowiedzi są krótkie.

sgcHTTP jest samowystarczalny

Samodzielnie, środowisko uruchomieniowe sgcWebSockets Core jest w zestawie: stos klienta HTTP/TLS, przez który każdy komponent wysyła swoje żądania, oraz warstwa JSON, która dekoduje odpowiedzi Google Cloud. Jedno SKU, jeden instalator.

Pełny kod źródłowy jest dostarczany z każdą licencją, więc wszystkich pięciu klientów oraz środowisko uruchomieniowe pod nimi prześledzisz krok po kroku we własnym debugerze, zamiast oglądać je znikające w pliku binarnym.

Dodatek wymagany dla dwóch z pięciu

HTTP/2 i gRPC wymagają sgcCustomIndy

HTTP/2 negocjuje protokół h2 przez ALPN podczas uzgadniania TLS, a standardowa biblioteka Indy dostarczana z RAD Studio nie obsługuje ALPN. Klient HTTP/2 i klient gRPC w sgcHTTP są zamiast tego zbudowane na sgcCustomIndy, który jest dodawany do twojego koszyka automatycznie przy zamawianiu sgcHTTP. Masz już licencję? Usuń go przy finalizacji zamówienia.

Trzy klienty Google Cloud, Pub/Sub, Calendar i Firebase Cloud Messaging, to zwykłe HTTPS. Działają na samym środowisku uruchomieniowym Core i w ogóle nie potrzebują sgcCustomIndy.

Dwa komponenty palety, trzy klienty Google Cloud

Klient HTTP/2 i klient gRPC to komponenty niewizualne na stronie palety SGC HTTP, zadeklarowane w module sgcHTTP. Umieść jeden na formularzu albo utwórz go w kodzie, ustaw opcje połączenia, podłącz zdarzenia, a następnie wywołuj typowane metody żądań. Trzy klienty Google Cloud znajdują się w tym samym module jako klasy dostępne wyłącznie z kodu, nie ma nic do umieszczenia na formularzu: utwórz jeden, ustaw GoogleCloudOptions i wywołuj jego metody bezpośrednio.

HTTP/21 komponent

Multipleksowane strumienie przez jedno połączenie TLS

TsgcHTTP2Client mówi w HTTP/2 (RFC 9113): wiele żądań dzieli jedno połączenie TCP jako niezależne strumienie, więc jedna wolna odpowiedź nie blokuje pozostałych czekających za nią. Nagłówki są kompresowane HPACK, a protokół h2 jest negocjowany podczas uzgadniania TLS przez ALPN, co jest powodem, dla którego komponent jest zbudowany na sgcCustomIndy zamiast na standardowej bibliotece Indy. Pokryty jest każdy czasownik: Connect, Get, Post, Put, Patch, Delete i Options, każdy z wywołaniem synchronicznym i bliźniaczym Async. Zdarzenia ujawniają cykl życia połączenia: OnHTTP2Connect, OnHTTP2Response, OnHTTP2ResponseFragment dla treści podzielonych na fragmenty (chunked), OnHTTP2PushPromise dla server push, OnHTTP2GoAway i OnHTTP2Disconnect. HTTP2Options konfiguruje lokalną ramkę ustawień, a TLSOptions i Authentication przenoszą się z reszty stosu sgc HTTP.

TsgcHTTP2Client Wymaga sgcCustomIndy
gRPC1 komponent

RPC unarne i strumieniowe na kliencie HTTP/2

TsgcGRPCClient jest zbudowany na kliencie HTTP/2, więc dziedziczy połączenie multipleksowane i dokłada na nim format transmisji gRPC: wiadomości Protocol Buffers poprzedzone długością, przesyłane strumieniami HTTP/2. Call i CallAsync obsługują RPC unarne, ServerStreamingCall obsługuje strumień odpowiedzi na jedno żądanie, a OpenClientStream/SendStreamMessage/CloseClientStream wraz z OpenBidiStream/SendBidiMessage/CloseBidiStream obsługują RPC strumieniowane po stronie klienta oraz dwukierunkowe. OnGRPCResponse, OnGRPCStreamMessage i OnGRPCStreamEnd dostarczają ruch, a RetryPolicy, Interceptors i ServiceConfig dodają zachowanie ponawiania, logikę przekrojową i konfigurację usługi bez dotykania miejsc wywołań. Podobnie jak klient HTTP/2, na którym jest zbudowany, potrzebuje sgcCustomIndy dla ALPN.

TsgcGRPCClient Wymaga sgcCustomIndy
Google Cloud3 klasy

Pub/Sub, Calendar i powiadomienia push, zwykłe HTTPS

Trzy kolejne klasy sięgają do usług Google Cloud przez zwykłe HTTPS, uwierzytelniane kontem usługi Google, i żadna z nich nie potrzebuje sgcCustomIndy. TsgcHTTPGoogleCloud_PubSub_Client publikuje i pobiera wiadomości oraz zarządza tematami, subskrypcjami i migawkami: Publish, Pull, Acknowledge, CreateTopic, CreateSubscription i reszta powierzchni REST Pub/Sub. TsgcHTTPGoogleCloud_Calendar_Client opakowuje Google Calendar API v3: NewCalendar, NewEvent, LoadEvents i LoadCalendars, ze zdarzeniami OnGetCalendar i OnGetCalendarEvent do synchronizacji. TsgcHTTPGoogleCloud_FCM_Client wysyła ładunek powiadomienia push do projektu Firebase jednym wywołaniem, SendMessage. Wszystkie trzy to klasy dostępne wyłącznie z kodu: utwórz jedną, ustaw GoogleCloudOptions, wywołuj metody.

TsgcHTTPGoogleCloud_PubSub_Client TsgcHTTPGoogleCloud_Calendar_Client TsgcHTTPGoogleCloud_FCM_Client

Dwie zależności, nie pięć

Pięć klas dzieli się wyraźnie według tego, czego potrzebują pod spodem. HTTP/2 i gRPC potrzebują ALPN, co oznacza sgcCustomIndy. Google Cloud nie potrzebuje niczego poza HTTPS i kontem usługi, co dołączone środowisko uruchomieniowe Core już zapewnia.

HTTP/2 potrzebuje ALPN, więc potrzebuje sgcCustomIndy

Application-Layer Protocol Negotiation wybiera h2 podczas uzgadniania TLS, a standardowa biblioteka Indy dostarczana z RAD Studio nie ma obsługi ALPN. TsgcHTTP2Client jest zamiast tego zbudowany na sgcCustomIndy, niestandardowej kompilacji Indy firmy eSeGeCe.

gRPC to Protocol Buffers na kliencie HTTP/2

TsgcGRPCClient nie otwiera własnego połączenia, jego właściwość Client to TsgcHTTP2Client. Wywołania unarne, strumieniowane po stronie serwera, po stronie klienta i dwukierunkowe wszystkie podróżują pod spodem jako strumienie HTTP/2.

Google Cloud to HTTPS plus konto usługi

Trzy klienty Google Cloud uwierzytelniają się przez GoogleCloudOptions.JWT: identyfikator projektu, adres e-mail klienta i klucz prywatny konta usługi Google, a następnie wywołują API REST przez zwykły stos HTTPS środowiska uruchomieniowego Core. OnAuthToken i OnAuthTokenError ujawniają wymianę tokenów.

Środowisko uruchomieniowe Core jest w zestawie

Samodzielnie, środowisko uruchomieniowe sgcWebSockets Core jest w zestawie. Dostarcza stos klienta HTTP/TLS, przez który wywołuje każdy z pięciu klientów, a jego pełne źródło jest częścią pakietu, tak jak wszystko inne.

HTTP/2 i gRPC, obok siebie

Oba komponenty są zadeklarowane w module sgcHTTP, a TsgcGRPCClient niesie własne połączenie HTTP/2 przez swoją właściwość Client. Ten sam kod kompiluje się w Delphi od 7 do 13 oraz w C++ Builder.

uses
  sgcHTTP;

var
  HTTP2: TsgcHTTP2Client;
  GRPC: TsgcGRPCClient;
begin
  // HTTP/2: multiplexed requests over one TLS connection
  HTTP2 := TsgcHTTP2Client.Create(nil);
  HTTP2.Host := 'https://api.example.com';
  HTTP2.OnHTTP2Response := HTTP2Response;
  HTTP2.Active := True;

  HTTP2.GetAsync('/v1/status');

  // gRPC: built on the HTTP/2 client, unary and streaming RPC
  GRPC := TsgcGRPCClient.Create(nil);
  GRPC.Client.Host := 'https://grpc.example.com';
  GRPC.OnGRPCResponse := GRPCResponse;

  GRPC.CallAsync('example.OrderService', 'GetOrder', RequestBytes);
end;

procedure TForm1.HTTP2Response(Sender: TObject;
  const Connection: TsgcHTTP2ConnectionClient;
  const Request: TsgcHTTP2RequestProperty;
  const Response: TsgcHTTP2ResponseProperty);
begin
  Memo1.Lines.Add(Response.DataString);
end;

procedure TForm1.GRPCResponse(Sender: TObject;
  const aResponse: TsgcGRPCResponse);
begin
  Memo1.Lines.Add(aResponse.DataString);
end;
// include: sgcHTTP.hpp

// HTTP/2: multiplexed requests over one TLS connection
TsgcHTTP2Client *HTTP2 = new TsgcHTTP2Client(this);
HTTP2->Host = "https://api.example.com";
HTTP2->OnHTTP2Response = HTTP2Response;
HTTP2->Active = true;

HTTP2->GetAsync("/v1/status");

// gRPC: built on the HTTP/2 client, unary and streaming RPC
TsgcGRPCClient *GRPC = new TsgcGRPCClient(this);
GRPC->Client->Host = "https://grpc.example.com";
GRPC->OnGRPCResponse = GRPCResponse;

GRPC->CallAsync("example.OrderService", "GetOrder", RequestBytes);

void __fastcall TForm1::HTTP2Response(TObject *Sender,
    const TsgcHTTP2ConnectionClient* Connection,
    const TsgcHTTP2RequestProperty* Request,
    const TsgcHTTP2ResponseProperty* Response)
{
  Memo1->Lines->Add(Response->DataString);
}

void __fastcall TForm1::GRPCResponse(TObject *Sender,
    const TsgcGRPCResponse* aResponse)
{
  Memo1->Lines->Add(aResponse->DataString);
}

Jedna zależność dla dwóch klientów, żadna dla trzech

Klient HTTP/2 i klient gRPC są zbudowane na sgcCustomIndy, który obejmuje ten sam zakres platform co samo sgcWebSockets. Klienty Google Cloud to zwykłe HTTPS, więc działają wszędzie tam, gdzie działa środowisko uruchomieniowe Core.

TsgcHTTP2Client & TsgcGRPCClient Zbudowane na sgcCustomIndy dla ALPN
Windows Win32 Windows Win64 Linux64 macOS iOS Android
Klienty Google Cloud Zwykłe HTTPS, sgcCustomIndy niepotrzebne
Windows Win32 Windows Win64 Linux64 macOS iOS Android
Obsługa IDE Jedno drzewo źródeł, pakiety projektowe dla każdej wersji
Delphi od 7 do 13 C++ Builder
Instalator próbny Wersja próbna sgcWebSockets All-Access zawiera komponenty sgcHTTP
Jedno pobranie, wszystkie pięć klas

Pobierz instalator wersji próbnej →

Pakiet samodzielny

sgcHTTP jest licencjonowany samodzielnie, już od €249 dla jednego programisty. Wszystkie licencje obejmują pełny kod źródłowy, 1 rok aktualizacji oraz od 50% do 70% rabatu na odnowienie: 50% przy odnowieniu jednego pakietu, 60% przy dwóch, 70% przy trzech lub więcej. sgcAI, sgcMQ, sgcSocial, sgcCustomIndy, sgcAuth i sgcHTTP liczą się każdy jako jeden pakiet. sgcHTTP jest również objęty pakietem All-Access.

sgcHTTP

€249

Dostępne licencje Single, Team i Site.

  • Klient HTTP/2 z multipleksowaniem i HPACK
  • Klient gRPC, RPC unarne i strumieniowe
  • Klienty Google Cloud Pub/Sub, Calendar i FCM
  • Środowisko uruchomieniowe sgcWebSockets Core w zestawie
  • Delphi od 7 do 13 i C++ Builder
  • Pełny kod źródłowy
  • 1 rok aktualizacji

HTTP/2 i gRPC potrzebują dodatku sgcCustomIndy. Zamówienie dodaje go automatycznie, a możesz go usunąć, jeśli już posiadasz licencję.

Zamówienie zawiera trzy pozycje: uprawnienie do środowiska uruchomieniowego sgcWebSockets Core, naliczane jako zero, sam pakiet sgcHTTP oraz dodatek sgcCustomIndy, dodawany automatycznie. Pełne szczegóły cennika.

3,000+Developers
20+Years
761+Components
30+API Integrations
5Platforms
30-dniowa gwarancja zwrotu pieniędzyNie jesteś zadowolony? Poproś o pełny zwrot pieniędzy w ciągu 30 dni od zakupu. Zobacz politykę zwrotów

Nowoczesne HTTP, gRPC i Google Cloud z natywnego kodu

Multipleksowane HTTP/2, strumieniowany gRPC oraz trzy klienty Google Cloud, ze środowiskiem uruchomieniowym w zestawie i pełnym kodem źródłowym w pakiecie. Pobierz już dziś instalator próbny All-Access i wypróbuj wszystkie pięć komponentów.

Inne produkty eSeGeCe

Połącz sgcHTTP z naszymi pozostałymi bibliotekami komponentów dla Delphi, C++ Builder i .NET.

sgcCustomIndy

Niestandardowa biblioteka Indy, na której zbudowane są klienci HTTP/2 i gRPC sgcHTTP: ALPN, TLS 1.3 i statyczne linkowanie OpenSSL.

Dowiedz się więcej →

sgcWebSockets

Pełna biblioteka: klienci i serwery WebSocket, HTTP/2, gRPC, IoT, P2P oraz komponenty AI. Jej edycja Enterprise zawiera także gRPC.

Dowiedz się więcej →

sgcAI

Komponenty AI, LLM i MCP. Jeden komponent czatu sięga do OpenAI, Anthropic, Gemini, DeepSeek, Ollama, Grok i Mistral.

Dowiedz się więcej →

sgcMQ

Natywne komponenty klienckie MQTT 3.1.1/5.0, AMQP 0.9.1, AMQP 1.0, Apache Kafka i STOMP, z dołączonym środowiskiem uruchomieniowym Core.

Dowiedz się więcej →

sgcSocial

Komponenty klienckie WhatsApp Business Cloud API i Telegram TDLib, z dołączonym środowiskiem uruchomieniowym Core.

Dowiedz się więcej →

sgcQUIC

Komponenty klienta i serwera QUIC (RFC 9000) oraz HTTP/3 (RFC 9114), zbudowane na natywnym silniku QUIC OpenSSL 3.5.

Dowiedz się więcej →