sgcHTTP Funktionsmatrix

Alles, was sgcHTTP kann, aufgeschlüsselt nach dem HTTP-Server, 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-Server

Endpunkte, statische Dateien, Sitzungen, TLS

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. Der HTTP-Server, TsgcHTTPServer, ist Teil dieser Runtime.

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 ist immer in deiner Bestellung enthalten, und der angezeigte sgcHTTP-Preis deckt es bereits ab. Die drei Google-Cloud-Clients sind reines HTTPS und brauchen es nicht.

Sechs Klassen, zwei Units

Drei Komponenten auf der Palettenseite SGC HTTP und drei reine Code-Klassen für Google Cloud. Der HTTP-Server ist in der Unit sgcHTTP_Server der mitgelieferten Core Runtime deklariert, alles andere in der Unit sgcHTTP.

KomponenteKlasseAuf der Palette?Beschreibung
HTTP-ServerTsgcHTTPServerJaHTTP-Server: Anfrage-Ereignisse, statische Dateien aus einem Document Root, Kompression, Keep-Alive, Sitzungen, Uploads, TLS und Authentifizierung. Wird mit der Core Runtime ausgeliefert.
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.

Endpunkte, statische Dateien, Sitzungen

TsgcHTTPServer veröffentlicht HTTP-Endpunkte und statische Dateien aus deiner eigenen Anwendung. Es ist dieselbe Engine wie der sgcWebSockets-WebSocket-Server, nur ohne den WebSocket-Teil, und er wird mit der mitgelieferten Core Runtime ausgeliefert.

FähigkeitAPIHinweise
LauschenPort, Bindings, ActiveSetze den Port oder binde an bestimmte Adressen, und aktiviere dann den Server.
AnfragenOnCommandGet, OnCommandOtherJede Anfrage erreicht deinen Code mit ihren Request- und Response-Objekten. OnCommandOther deckt Verben wie PUT und DELETE ab.
Statische DateienDocumentRootLiefert statische Dateien aus dem Ordner aus, auf den du es richtest.
KompressionHTTPCompressionOptionen für die Antwortkompression.
VerbindungenKeepAlive, MaxConnectionsHält Verbindungen zwischen Anfragen offen und begrenzt, wie viele gleichzeitig offen sind.
SitzungenSessionState, AutoStartSession, SessionTimeOut, OnSessionStart, OnSessionEndServerseitige Sitzungen mit Timeout, plus Start- und Ende-Ereignisse.
AnfragelimitsMaxRequestBodySizeBegrenzt die Größe eines Request-Bodys.
UploadsHTTPUploadFilesSpeichert hochgeladene Dateien in einem Verzeichnis deiner Wahl.
TLSSSL, SSLOptionsLiefere HTTPS mit deinem eigenen Zertifikat aus.
AuthentifizierungAuthentication, OnAuthenticationPrüfe Zugangsdaten in deinem eigenen Code, bevor eine Anfrage bedient wird.
ThreadsThreadPool, ThreadPoolOptionsVerwendet Worker-Threads aus einem Pool wieder, statt pro Verbindung einen zu erzeugen.
RuntimesgcWebSockets CoreDeklariert in der Unit sgcHTTP_Server der mitgelieferten Core Runtime, auf der Palettenseite SGC HTTP.

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-ServerHTTP-Anfragen und -Antworten, statische Dateien, Sitzungen und HTTPS über TsgcHTTPServer.
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 und gRPC sind außerdem ab der Enterprise-Edition in sgcWebSockets enthalten, und die Google-Cloud-Clients ab Standard. Der HTTP-Server ist Teil der Core Runtime, daher enthält ihn auch jede sgcWebSockets-Edition.
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 veröffentliche deinen ersten HTTP-Endpunkt und mach deinen ersten HTTP/2- oder gRPC-Aufruf aus Delphi oder C++ Builder.