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

sgcHTTP-functiematrix

Alles wat sgcHTTP doet, uitgesplitst over de HTTP/2-client, de gRPC-client en de drie Google Cloud-clients. Elke mogelijkheid werkt hetzelfde in Delphi en C++ Builder, en elke licentie bevat de volledige broncode. Voor deze launch zijn er nog geen aparte componentpagina's gepubliceerd, elk onderdeel hieronder staat op zichzelf op deze pagina.

HTTP/2-client

Gemultiplexte streams, HPACK, ALPN

gRPC-client

Unary & streaming RPC

Google Cloud

Pub/Sub, Calendar & FCM

Standaarden & platforms

Delphi 7 tot 13, C++ Builder

sgcHTTP is zelfstandig. Het wordt geleverd met de sgcWebSockets Core runtime inbegrepen, dus het is geen add-on.

HTTP/2 en gRPC hebben sgcCustomIndy nodig. Beide klassen vereisen ALPN voor TLS-protocolonderhandeling, wat de standaard Indy-bibliotheek niet ondersteunt, dus ze zijn in plaats daarvan gebouwd op sgcCustomIndy. Dit wordt automatisch aan je bestelling toegevoegd. De drie Google Cloud-clients zijn gewone HTTPS en hebben het niet nodig.

Vijf klassen, één unit

Twee componenten op de paletpagina SGC HTTP, en drie code-only Google Cloud-klassen, allemaal gedeclareerd in de sgcHTTP-unit.

ComponentKlassePalet?Beschrijving
HTTP/2-clientTsgcHTTP2ClientJaNative HTTP/2-client: gemultiplexte streams, HPACK-headercompressie, ALPN-onderhandeling. Heeft sgcCustomIndy nodig.
gRPC-clientTsgcGRPCClientJagRPC-client gebouwd op de HTTP/2-client: unary, server-streaming, client-streaming en bidirectionele RPC. Heeft sgcCustomIndy nodig.
Google Cloud Pub/SubTsgcHTTPGoogleCloud_PubSub_ClientNee, code-onlyGoogle Cloud Pub/Sub REST API: topics, abonnementen, snapshots, publish en pull. Gewone HTTPS op Core.
Google Cloud CalendarTsgcHTTPGoogleCloud_Calendar_ClientNee, code-onlyGoogle Calendar API v3: agenda's en events, aanmaken, bijwerken, weergeven, verwijderen. Gewone HTTPS op Core.
Google Cloud FCMTsgcHTTPGoogleCloud_FCM_ClientNee, code-onlyFirebase Cloud Messaging HTTP v1 API: verstuur een pushmeldingspayload met één aanroep. Gewone HTTPS op Core.

Gemultiplexte requests, HPACK, ALPN

TsgcHTTP2Client spreekt HTTP/2 (RFC 9113) over één TLS-verbinding, onderhandeld met ALPN, en dat is waarom het op sgcCustomIndy is gebouwd.

MogelijkheidAPIOpmerkingen
VerbindingHost, Port, ActiveEén TLS-verbinding draagt elke gemultiplexte requeststream.
VerbindenConnect, ConnectAsyncOpent de verbinding en geeft optioneel meteen een request mee in dezelfde aanroep.
LezenGet, GetAsyncSynchrone aanroep of fire-and-forget met de response afgeleverd via event.
SchrijvenPost, PostAsync, Put, PutAsync, Patch, PatchAsyncRequestbodies zijn streams, dus uploads hoeven niet in het geheugen te passen.
Delete & OptionsDelete, DeleteAsync, Options, OptionsAsyncDe rest van de HTTP-werkwoordenset, dezelfde synchrone/async-koppeling.
ResponsesOnHTTP2ResponseLevert het request- en response-object samen af, inclusief Response.DataString en status.
Chunked bodiesOnHTTP2ResponseFragmentVuurt bij elk fragment van een chunked response, vóór de uiteindelijke OnHTTP2Response.
Server pushOnHTTP2PushPromiseToont door de server gepushte resources zodra ze binnenkomen.
Levenscyclus van de verbindingOnHTTP2Connect, OnHTTP2Disconnect, OnHTTP2GoAway, OnHTTP2RSTStreamDe connect-, disconnect- en stream-reset-signalen die HTTP/2 definieert.
InstellingenHTTP2Options, SettingsDe lokale HTTP/2 SETTINGS-framewaarden die naar de peer worden verstuurd.
BetrouwbaarheidWatchDog, HeartBeat, ThrottleAutomatisch herverbinden, keep-alive en requestthrottling, gedeeld met de rest van de sgc HTTP-stack.
Auth & TLSAuthentication, TLSOptions, OnHTTP2AuthorizationStandaard authenticatieschema's en TLS-configuratie, plus een hook voor aangepaste autorisatieheaders.
AfhankelijkheidsgcCustomIndyALPN onderhandelt tijdens de TLS-handshake over het h2-protocol; de standaard Indy-bibliotheek kan dit niet.

Unary, server-, client- en bidirectionele streaming

TsgcGRPCClient draagt Protocol Buffers-payloads over de gemultiplexte streams van de HTTP/2-client, dus het dekt alle vier de gRPC-aanroepvormen.

MogelijkheidAPIOpmerkingen
TransportClientEen TsgcHTTP2Client-instantie; de gRPC-client rijdt erop mee in plaats van een eigen verbinding te openen.
Unary RPCCall, CallAsync, CallStringEén request, één response. Call blokkeert en geeft een TsgcGRPCResponse terug; CallAsync levert deze via OnGRPCResponse.
Server-streamingServerStreamingCallEén request, een stroom van responses afgeleverd via OnGRPCStreamMessage tot OnGRPCStreamEnd.
Client-streamingOpenClientStream, SendStreamMessage, CloseClientStream, CloseClientStreamAsyncEen stroom van requests, één laatste response wanneer de stream sluit.
Bidirectionele streamingOpenBidiStream, SendBidiMessage, CloseBidiStreamBeide kanten streamen onafhankelijk over dezelfde aanroep.
AnnulerenCancelCallAnnuleert een lopende aanroep via zijn stream-id.
ResponsesOnGRPCResponse, OnGRPCStreamMessage, OnGRPCStreamEndTsgcGRPCResponse draagt StatusCode, Data/DataString, Headers en Trailers.
FoutenOnGRPCError, OnGRPCExceptiongRPC-statuscodefouten en transportfouten op laag niveau, apart afgeleverd.
MetadataDefaultMetadata, OnGRPCBeforeRequestStandaard- en per-aanroep gRPC-metadataheaders.
VeerkrachtRetryPolicy, Interceptors, ServiceConfigRetrygedrag, een cross-cutting interceptorketen, en serviceconfiguratie, zonder individuele aanroeppunten aan te raken.
ObservabilityMetricsCollectorVerzamelt aanroepstatistieken voor de client.
AfhankelijkheidsgcCustomIndyOvergeërfd van de HTTP/2-client waarop het is gebouwd; ALPN is op dezelfde manier vereist.

Pub/Sub, Calendar en pushmeldingen

Drie code-only klassen, geauthenticeerd met een Google-serviceaccount en bereikt via gewone HTTPS. Geen enkele heeft sgcCustomIndy nodig.

MogelijkheidAPIOpmerkingen
AuthenticatieGoogleCloudOptions.JWT, OnAuthToken, OnAuthTokenErrorService-account-JWT: project-id, client-e-mail en private key. Gedeelde vorm bij alle drie de clients.
Pub/Sub: publiceren & ophalenPublish, Pull, Acknowledge, SeekTsgcHTTPGoogleCloud_PubSub_Client. Verstuur berichten naar een topic, haal op en bevestig vanuit een abonnement.
Pub/Sub: topicsCreateTopic, DeleteTopic, GetTopic, ListTopicsBeheer topics rechtstreeks vanuit code.
Pub/Sub: abonnementenCreateSubscription, DeleteSubscripton, ListSubscriptions, ModifyAckDeadlineSubscriptionVolledige levenscyclus van abonnementen, inclusief ack-deadline- en push-configwijzigingen.
Pub/Sub: snapshotsCreateSnapshot, DeleteSnapshot, ListSnapshotsLeg de bevestigingsstatus van een abonnement vast voor latere replay.
Calendar: agenda'sNewCalendar, UpdateCalendar, DeleteCalendar, LoadCalendarsTsgcHTTPGoogleCloud_Calendar_Client. Pakt de agendalijst van de Google Calendar API v3 in.
Calendar: eventsNewEvent, UpdateEvent, DeleteEvent, LoadEventsMaak, wijzig en verwijder events op een gegeven agenda.
Calendar: synchronisatieLoadCalendarsChanged, LoadEventsChanged, OnGetCalendar, OnGetCalendarEventIncrementele synchronisatiehooks voor agenda's en events die sinds de laatste synchronisatie zijn gewijzigd.
FCM: pushSendMessageTsgcHTTPGoogleCloud_FCM_Client. Met één aanroep verstuur je een Firebase Cloud Messaging v1-payload naar een project.
TLS en loggingTLSOptions, LogFileGedeeld door alle drie de Google Cloud-clients.

API's, compilers en targets

Publieke standaarden op de lijn, en dezelfde broncode voor elke ondersteunde compiler.

GebiedDetail
HTTP/2RFC 9113, met HPACK-headercompressie en ALPN-protocolonderhandeling.
gRPCProtocol Buffers-payloads over HTTP/2-streams, volgens het gRPC-wireprotocol.
Google CloudDe Pub/Sub REST API, de Google Calendar API v3, en de Firebase Cloud Messaging HTTP v1 API, allemaal geauthenticeerd met een Google-serviceaccount.
PlatformsWindows Win32, Windows Win64, Linux64, macOS, iOS en Android voor alle vijf klassen.
AfhankelijkheidDe HTTP/2- en gRPC-clients hebben sgcCustomIndy nodig voor ALPN. De Google Cloud-clients hebben alleen de meegeleverde Core runtime nodig.
CompilersDelphi en C++ Builder 7 tot en met 13.
EditiesHTTP/2 zit ook in sgcWebSockets vanaf Professional, gRPC vanaf Enterprise, en de Google Cloud-clients vanaf Standard.
LicentiesStandalone. De sgcWebSockets Core runtime is meegeleverd en de volledige broncode is inbegrepen.
De beste deal: All-AccessElk eSeGeCe-product, inclusief Premium-ondersteuning, vanaf €1,059 per jaar.
Bekijk de All-Access-prijzen

Bouw met sgcHTTP

Download de gratis proefversie en doe je eerste HTTP/2- of gRPC-aanroep vanuit Delphi of C++ Builder.