sgcHTTP Funktionsmatrix: HTTP/2, gRPC & Google Cloud | eSeGeCe

sgcHTTP Funktionsmatrix

Alles, was sgcHTTP kann, aufgeschlüsselt nach dem HTTP/2-Client, dem gRPC-Client und den drei Google-Cloud-Clients. Jede Fähigkeit arbeitet in Delphi und C++ Builder identisch, und jede Lizenz enthält den vollständigen Quellcode. Für diesen Launch sind noch keine Komponenten-Unterseiten veröffentlicht, jeder Eintrag unten ist auf dieser Seite in sich abgeschlossen.

HTTP/2-Client

Gemultiplexte Streams, HPACK, ALPN

gRPC-Client

Unary- & Streaming-RPC

Google Cloud

Pub/Sub, Calendar & FCM

Standards & Plattformen

Delphi 7 bis 13, C++ Builder

sgcHTTP ist in sich geschlossen. Es bringt die sgcWebSockets Core Runtime mit, es ist also kein Add-on.

HTTP/2 und gRPC brauchen sgcCustomIndy. Beide Klassen brauchen ALPN für die TLS-Protokollaushandlung, was die Standard-Indy-Bibliothek nicht unterstützt, sie bauen also stattdessen auf sgcCustomIndy auf. Es wird deiner Bestellung automatisch hinzugefügt. Die drei Google-Cloud-Clients sind reines HTTPS und brauchen es nicht.

Fünf Klassen, eine Unit

Zwei Komponenten auf der Palettenseite SGC HTTP, und drei reine Code-Klassen für Google Cloud, alle in der Unit sgcHTTP deklariert.

KomponenteKlasseAuf der Palette?Beschreibung
HTTP/2 ClientTsgcHTTP2ClientJaNativer HTTP/2-Client: gemultiplexte Streams, HPACK-Header-Kompression, ALPN-Aushandlung. Braucht sgcCustomIndy.
gRPC ClientTsgcGRPCClientJagRPC-Client, aufgebaut auf dem HTTP/2-Client: Unary-, Server-Streaming-, Client-Streaming- und bidirektionale RPC. Braucht sgcCustomIndy.
Google Cloud Pub/SubTsgcHTTPGoogleCloud_PubSub_ClientNein, reine Code-KlasseGoogle Cloud Pub/Sub REST API: Topics, Subscriptions, Snapshots, Publish und Pull. Reines HTTPS auf Core.
Google Cloud CalendarTsgcHTTPGoogleCloud_Calendar_ClientNein, reine Code-KlasseGoogle Calendar API v3: Kalender und Ereignisse, erstellen, aktualisieren, auflisten, löschen. Reines HTTPS auf Core.
Google Cloud FCMTsgcHTTPGoogleCloud_FCM_ClientNein, reine Code-KlasseFirebase Cloud Messaging HTTP v1 API: eine Push-Benachrichtigungs-Payload mit einem Aufruf senden. Reines HTTPS auf Core.

Gemultiplexte Anfragen, HPACK, ALPN

TsgcHTTP2Client spricht HTTP/2 (RFC 9113) über eine einzige TLS-Verbindung, ausgehandelt per ALPN, weshalb es auf sgcCustomIndy aufbaut.

FähigkeitAPIHinweise
VerbindungHost, Port, ActiveEine TLS-Verbindung trägt jeden gemultiplexten Anfrage-Stream.
VerbindenConnect, ConnectAsyncÖffnet die Verbindung und stellt im selben Aufruf optional eine Anfrage.
LesenGet, GetAsyncSynchroner Aufruf oder Fire-and-Forget mit der Antwort per Ereignis.
SchreibenPost, PostAsync, Put, PutAsync, Patch, PatchAsyncAnfrage-Bodys sind Streams, Uploads müssen also nicht in den Speicher passen.
Delete & OptionsDelete, DeleteAsync, Options, OptionsAsyncDer Rest der HTTP-Verb-Menge, dieselbe synchrone/asynchrone Paarung.
AntwortenOnHTTP2ResponseLiefert das Anfrage- und das Antwortobjekt zusammen, einschließlich Response.DataString und Status.
Chunked BodiesOnHTTP2ResponseFragmentFeuert bei jedem Fragment einer chunked Antwort, noch vor dem abschließenden OnHTTP2Response.
Server PushOnHTTP2PushPromiseMacht per HTTP/2 vom Server gepushte Ressourcen sichtbar, sobald sie eintreffen.
Verbindungs-LebenszyklusOnHTTP2Connect, OnHTTP2Disconnect, OnHTTP2GoAway, OnHTTP2RSTStreamDie Connect-, Disconnect- und Stream-Reset-Signale, die HTTP/2 definiert.
SettingsHTTP2Options, SettingsDie lokalen HTTP/2-SETTINGS-Frame-Werte, die an die Gegenstelle gesendet werden.
ZuverlässigkeitWatchDog, HeartBeat, ThrottleAuto-Reconnect, Keep-Alive und Anfrage-Drosselung, geteilt mit dem übrigen sgc-HTTP-Stack.
Auth & TLSAuthentication, TLSOptions, OnHTTP2AuthorizationGängige Authentifizierungsschemata und TLS-Konfiguration, dazu ein Hook für benutzerdefinierte Authorization-Header.
AbhängigkeitsgcCustomIndyALPN handelt das h2-Protokoll während des TLS-Handshakes aus; die Standard-Indy-Bibliothek kann das nicht.

Unary, Server, Client und bidirektionales Streaming

TsgcGRPCClient trägt Protocol-Buffers-Payloads über die gemultiplexten Streams des HTTP/2-Clients, es deckt also alle vier gRPC-Aufrufformen ab.

FähigkeitAPIHinweise
TransportClientEine TsgcHTTP2Client-Instanz; der gRPC-Client reitet darauf, statt eine eigene Verbindung zu öffnen.
Unary-RPCCall, CallAsync, CallStringEine Anfrage, eine Antwort. Call blockiert und liefert eine TsgcGRPCResponse; CallAsync liefert sie über OnGRPCResponse.
Server-StreamingServerStreamingCallEine Anfrage, ein Antwort-Stream, geliefert über OnGRPCStreamMessage bis OnGRPCStreamEnd.
Client-StreamingOpenClientStream, SendStreamMessage, CloseClientStream, CloseClientStreamAsyncEin Anfrage-Stream, eine finale Antwort, wenn der Stream schließt.
Bidirektionales StreamingOpenBidiStream, SendBidiMessage, CloseBidiStreamBeide Seiten streamen unabhängig über denselben Aufruf.
AbbruchCancelCallBricht einen laufenden Aufruf über seine Stream-ID ab.
AntwortenOnGRPCResponse, OnGRPCStreamMessage, OnGRPCStreamEndTsgcGRPCResponse trägt StatusCode, Data/DataString, Headers und Trailers.
FehlerOnGRPCError, OnGRPCExceptiongRPC-Statuscode-Fehler und Transport-Ebene-Exceptions, getrennt geliefert.
MetadatenDefaultMetadata, OnGRPCBeforeRequestAufruf- und Standard-gRPC-Metadaten-Header.
ResilienzRetryPolicy, Interceptors, ServiceConfigRetry-Verhalten, eine übergreifende Interceptor-Kette und Service-Konfiguration, ohne einzelne Aufrufstellen anzufassen.
ObservabilityMetricsCollectorSammelt Aufruf-Metriken für den Client.
AbhängigkeitsgcCustomIndyVom HTTP/2-Client geerbt, auf dem er aufbaut; ALPN wird auf dieselbe Weise benötigt.

Pub/Sub, Calendar und Push-Benachrichtigungen

Drei reine Code-Klassen, authentifiziert mit einem Google-Service-Konto und über reines HTTPS erreicht. Keine davon braucht sgcCustomIndy.

FähigkeitAPIHinweise
AuthentifizierungGoogleCloudOptions.JWT, OnAuthToken, OnAuthTokenErrorService-Konto-JWT: Projekt-ID, Client-E-Mail und privater Schlüssel. Dieselbe Form über alle drei Clients hinweg.
Pub/Sub: Publish & PullPublish, Pull, Acknowledge, SeekTsgcHTTPGoogleCloud_PubSub_Client. Sende Nachrichten an ein Topic, hole ab und bestätige von einer Subscription.
Pub/Sub: TopicsCreateTopic, DeleteTopic, GetTopic, ListTopicsVerwalte Topics direkt aus dem Code.
Pub/Sub: SubscriptionsCreateSubscription, DeleteSubscripton, ListSubscriptions, ModifyAckDeadlineSubscriptionVollständiger Subscription-Lebenszyklus, einschließlich Ack-Deadline- und Push-Config-Änderungen.
Pub/Sub: SnapshotsCreateSnapshot, DeleteSnapshot, ListSnapshotsErstelle einen Snapshot des Bestätigungsstatus einer Subscription für spätere Wiederholung.
Calendar: KalenderNewCalendar, UpdateCalendar, DeleteCalendar, LoadCalendarsTsgcHTTPGoogleCloud_Calendar_Client. Umhüllt die Kalenderliste der Google Calendar API v3.
Calendar: EreignisseNewEvent, UpdateEvent, DeleteEvent, LoadEventsErstelle, ändere und entferne Ereignisse in einem gegebenen Kalender.
Calendar: SynchronisierungLoadCalendarsChanged, LoadEventsChanged, OnGetCalendar, OnGetCalendarEventInkrementelle Synchronisierungs-Hooks für Kalender und Ereignisse, die sich seit der letzten Synchronisierung geändert haben.
FCM: PushSendMessageTsgcHTTPGoogleCloud_FCM_Client. Ein Aufruf sendet eine Firebase-Cloud-Messaging-v1-Payload an ein Projekt.
TLS und LoggingTLSOptions, LogFileGeteilt über alle drei Google-Cloud-Clients.

APIs, Compiler und Zielplattformen

Öffentliche Standards auf der Leitung, und derselbe Quellcode über jeden unterstützten Compiler hinweg.

BereichDetail
HTTP/2RFC 9113, mit HPACK-Header-Kompression und ALPN-Protokollaushandlung.
gRPCProtocol-Buffers-Payloads über HTTP/2-Streams, gemäß dem gRPC-Wire-Protokoll.
Google CloudDie Pub/Sub-REST-API, die Google Calendar API v3 und die Firebase Cloud Messaging HTTP v1 API, alle authentifiziert mit einem Google-Service-Konto.
PlattformenWindows Win32, Windows Win64, Linux64, macOS, iOS und Android für alle fünf Klassen.
AbhängigkeitDer HTTP/2- und der gRPC-Client brauchen sgcCustomIndy für ALPN. Die Google-Cloud-Clients brauchen nur die mitgelieferte Core Runtime.
CompilerDelphi und C++ Builder 7 bis 13.
EditionenHTTP/2 ist außerdem ab der Professional-Edition in sgcWebSockets enthalten, gRPC ab Enterprise, und die Google-Cloud-Clients ab Standard.
LizenzierungEigenständig. Die sgcWebSockets Core Runtime ist mitgeliefert und der vollständige Quellcode ist enthalten.
Bestes Preis-Leistungs-Verhältnis: All-AccessAlle eSeGeCe-Produkte, inklusive Premium-Support, ab €1,059 pro Jahr.
All-Access-Preise ansehen

Baue mit sgcHTTP

Lade die kostenlose Testversion herunter und mach deinen ersten HTTP/2- oder gRPC-Aufruf aus Delphi oder C++ Builder.