Matrice des fonctionnalités sgcHTTP : HTTP/2, gRPC et Google Cloud | eSeGeCe

sgcHTTP matrice des fonctionnalités

Tout ce que fait sgcHTTP, réparti sur le client HTTP/2, le client gRPC et les trois clients Google Cloud. Chaque capacité fonctionne de la même façon en Delphi et en C++ Builder, et chaque licence est livrée avec le code source complet. Les sous-pages par composant ne sont pas encore publiées pour ce lancement, chaque entrée ci-dessous est autonome sur cette page.

Client HTTP/2

Flux multiplexés, HPACK, ALPN

Client gRPC

RPC unaires et en streaming

Google Cloud

Pub/Sub, Calendar et FCM

Standards et plateformes

Delphi 7 à 13, C++ Builder

sgcHTTP est autonome. Il est livré avec le runtime sgcWebSockets Core inclus, ce n'est donc pas un complément.

HTTP/2 et gRPC ont besoin de sgcCustomIndy. Les deux classes exigent ALPN pour la négociation du protocole TLS, que la bibliothèque Indy standard ne prend pas en charge, elles sont donc bâties sur sgcCustomIndy à la place. Il est ajouté à ta commande automatiquement. Les trois clients Google Cloud sont en HTTPS pur et n'en ont pas besoin.

Cinq classes, une seule unité

Deux composants sur la page de palette SGC HTTP, et trois classes pur code Google Cloud, tous déclarés dans l'unité sgcHTTP.

ComposantClassePalette ?Description
Client HTTP/2TsgcHTTP2ClientOuiClient HTTP/2 natif : flux multiplexés, compression d'en-têtes HPACK, négociation ALPN. Nécessite sgcCustomIndy.
Client gRPCTsgcGRPCClientOuiClient gRPC bâti sur le client HTTP/2 : RPC unaires, en streaming serveur, en streaming client et bidirectionnels. Nécessite sgcCustomIndy.
Google Cloud Pub/SubTsgcHTTPGoogleCloud_PubSub_ClientNon, pur codeAPI REST Google Cloud Pub/Sub : sujets, abonnements, instantanés, publication et récupération. HTTPS pur sur le Core.
Google Cloud CalendarTsgcHTTPGoogleCloud_Calendar_ClientNon, pur codeAPI Google Calendar v3 : agendas et événements, création, modification, liste, suppression. HTTPS pur sur le Core.
Google Cloud FCMTsgcHTTPGoogleCloud_FCM_ClientNon, pur codeAPI HTTP v1 Firebase Cloud Messaging : envoie une charge utile de notification push en un seul appel. HTTPS pur sur le Core.

Requêtes multiplexées, HPACK, ALPN

TsgcHTTP2Client parle HTTP/2 (RFC 9113) sur une seule connexion TLS, négociée avec ALPN, c'est pourquoi il est bâti sur sgcCustomIndy.

CapacitéAPINotes
ConnexionHost, Port, ActiveUne seule connexion TLS porte chaque flux de requête multiplexé.
Connexion initialeConnect, ConnectAsyncOuvre la connexion et émet une requête optionnelle dans le même appel.
LectureGet, GetAsyncAppel synchrone ou tir-et-oublie avec la réponse délivrée par événement.
ÉcriturePost, PostAsync, Put, PutAsync, Patch, PatchAsyncLes corps de requête sont des flux, les envois n'ont donc pas à tenir en mémoire.
Delete et OptionsDelete, DeleteAsync, Options, OptionsAsyncLe reste du jeu de verbes HTTP, avec la même paire synchrone/async.
RéponsesOnHTTP2ResponseDélivre ensemble les objets requête et réponse, y compris Response.DataString et le statut.
Corps fragmentésOnHTTP2ResponseFragmentSe déclenche à l'arrivée de chaque fragment d'une réponse fragmentée, avant l'OnHTTP2Response final.
Push serveurOnHTTP2PushPromiseExpose les ressources poussées par le serveur HTTP/2 à leur arrivée.
Cycle de vie de la connexionOnHTTP2Connect, OnHTTP2Disconnect, OnHTTP2GoAway, OnHTTP2RSTStreamLes signaux de connexion, déconnexion et réinitialisation de flux définis par HTTP/2.
RéglagesHTTP2Options, SettingsLes valeurs de la trame SETTINGS HTTP/2 locale envoyées au pair.
FiabilitéWatchDog, HeartBeat, ThrottleReconnexion automatique, maintien de connexion et limitation de débit, partagés avec le reste de la pile HTTP sgc.
Authentification et TLSAuthentication, TLSOptions, OnHTTP2AuthorizationSchémas d'authentification standards et configuration TLS, plus un point d'accroche pour des en-têtes d'autorisation personnalisés.
DépendancesgcCustomIndyALPN négocie le protocole h2 pendant la poignée de main TLS ; la bibliothèque Indy standard ne peut pas le faire.

Streaming unaire, serveur, client et bidirectionnel

TsgcGRPCClient transporte des charges utiles Protocol Buffers sur les flux multiplexés du client HTTP/2, il couvre donc les quatre formes d'appel gRPC.

CapacitéAPINotes
TransportClientUne instance TsgcHTTP2Client ; le client gRPC repose dessus plutôt que d'ouvrir sa propre connexion.
RPC unaireCall, CallAsync, CallStringUne requête, une réponse. Call bloque et renvoie un TsgcGRPCResponse ; CallAsync la délivre via OnGRPCResponse.
Streaming serveurServerStreamingCallUne requête, un flux de réponses délivrées via OnGRPCStreamMessage jusqu'à OnGRPCStreamEnd.
Streaming clientOpenClientStream, SendStreamMessage, CloseClientStream, CloseClientStreamAsyncUn flux de requêtes, une réponse finale à la fermeture du flux.
Streaming bidirectionnelOpenBidiStream, SendBidiMessage, CloseBidiStreamLes deux côtés diffusent indépendamment sur le même appel.
AnnulationCancelCallAnnule un appel en cours par son identifiant de flux.
RéponsesOnGRPCResponse, OnGRPCStreamMessage, OnGRPCStreamEndTsgcGRPCResponse porte StatusCode, Data/DataString, Headers et Trailers.
ErreursOnGRPCError, OnGRPCExceptionErreurs de code de statut gRPC et exceptions de niveau transport, délivrées séparément.
MétadonnéesDefaultMetadata, OnGRPCBeforeRequestEn-têtes de métadonnées gRPC par appel et par défaut.
RésilienceRetryPolicy, Interceptors, ServiceConfigComportement de réessai, chaîne d'intercepteurs transversale et configuration de service, sans toucher aux points d'appel individuels.
ObservabilitéMetricsCollectorCollecte les métriques d'appel du client.
DépendancesgcCustomIndyHéritée du client HTTP/2 sur lequel il est bâti ; ALPN est requis de la même façon.

Pub/Sub, Calendar et notifications push

Trois classes pur code, authentifiées avec un compte de service Google et atteintes en HTTPS pur. Aucune n'a besoin de sgcCustomIndy.

CapacitéAPINotes
AuthentificationGoogleCloudOptions.JWT, OnAuthToken, OnAuthTokenErrorJWT de compte de service : id de projet, e-mail client et clé privée. Forme partagée par les trois clients.
Pub/Sub : publier et récupérerPublish, Pull, Acknowledge, SeekTsgcHTTPGoogleCloud_PubSub_Client. Envoie des messages vers un sujet, récupère et accuse réception depuis un abonnement.
Pub/Sub : sujetsCreateTopic, DeleteTopic, GetTopic, ListTopicsGère les sujets directement depuis le code.
Pub/Sub : abonnementsCreateSubscription, DeleteSubscripton, ListSubscriptions, ModifyAckDeadlineSubscriptionCycle de vie complet de l'abonnement, y compris les changements de délai d'accusé de réception et de configuration push.
Pub/Sub : instantanésCreateSnapshot, DeleteSnapshot, ListSnapshotsCapture l'état d'accusé de réception d'un abonnement pour une relecture ultérieure.
Calendar : agendasNewCalendar, UpdateCalendar, DeleteCalendar, LoadCalendarsTsgcHTTPGoogleCloud_Calendar_Client. Encapsule la liste d'agendas de l'API Google Calendar v3.
Calendar : événementsNewEvent, UpdateEvent, DeleteEvent, LoadEventsCrée, modifie et supprime des événements sur un agenda donné.
Calendar : synchronisationLoadCalendarsChanged, LoadEventsChanged, OnGetCalendar, OnGetCalendarEventPoints d'accroche de synchronisation incrémentale pour les agendas et événements modifiés depuis la dernière synchronisation.
FCM : pushSendMessageTsgcHTTPGoogleCloud_FCM_Client. Un seul appel envoie une charge utile Firebase Cloud Messaging v1 à un projet.
TLS et journalisationTLSOptions, LogFilePartagés par les trois clients Google Cloud.

API, compilateurs et cibles

Des standards publics sur le fil, et le même source sur chaque compilateur pris en charge.

DomaineDétail
HTTP/2RFC 9113, avec compression d'en-têtes HPACK et négociation de protocole ALPN.
gRPCCharges utiles Protocol Buffers sur des flux HTTP/2, selon le protocole de câble gRPC.
Google CloudL'API REST Pub/Sub, l'API Google Calendar v3, et l'API HTTP v1 Firebase Cloud Messaging, toutes authentifiées avec un compte de service Google.
PlateformesWindows Win32, Windows Win64, Linux64, macOS, iOS et Android pour les cinq classes.
DépendanceLes clients HTTP/2 et gRPC ont besoin de sgcCustomIndy pour ALPN. Les clients Google Cloud n'ont besoin que du runtime Core inclus.
CompilateursDelphi et C++ Builder 7 à 13.
ÉditionsHTTP/2 est aussi livré dans sgcWebSockets à partir de Professional, gRPC à partir d'Enterprise, et les clients Google Cloud à partir de Standard.
LicenceAutonome. Le runtime sgcWebSockets Core est inclus et le code source complet est fourni.
Meilleur rapport qualité-prix : All-AccessTous les produits eSeGeCe, Support Premium inclus, à partir de €1,059/an.
Voir les tarifs All-Access

Construis avec sgcHTTP

Télécharge l'essai gratuit et effectue ton premier appel HTTP/2 ou gRPC depuis Delphi ou C++ Builder.