sgcHTTP matrice delle funzionalità

Tutto quello che fa sgcHTTP, mappato sul server HTTP, il client HTTP/2, il client gRPC e i tre client Google Cloud. Ogni funzionalità si comporta allo stesso modo in Delphi e in C++ Builder, e ogni licenza include il codice sorgente completo. Le sottopagine dei componenti non sono ancora pubblicate per questo lancio, ogni voce qui sotto è autonoma su questa pagina.

Server HTTP

Endpoint, file statici, sessioni, TLS

Client HTTP/2

Stream multiplati, HPACK, ALPN

Client gRPC

RPC unarie e in streaming

Google Cloud

Pub/Sub, Calendar e FCM

Standard e piattaforme

Da Delphi 7 a 13, C++ Builder

sgcHTTP è autosufficiente. Viene distribuito con il runtime sgcWebSockets Core incluso, quindi non è un componente aggiuntivo. Il server HTTP, TsgcHTTPServer, fa parte di quel runtime.

HTTP/2 e gRPC richiedono sgcCustomIndy. Entrambe le classi richiedono ALPN per la negoziazione del protocollo TLS, che la libreria Indy standard non supporta, quindi sono costruite invece su sgcCustomIndy. È sempre incluso nel tuo ordine, e il prezzo di sgcHTTP mostrato lo copre già. I tre client Google Cloud sono HTTPS puro e non lo richiedono.

Sei classi, due unità

Tre componenti sulla pagina della palette SGC HTTP e tre classi Google Cloud solo-codice. Il server HTTP è dichiarato nell'unità sgcHTTP_Server del runtime Core incluso, tutto il resto nell'unità sgcHTTP.

ComponenteClassePalette?Descrizione
Server HTTPTsgcHTTPServerSìServer HTTP: eventi di richiesta, file statici da una document root, compressione, keep-alive, sessioni, upload, TLS e autenticazione. Incluso nel runtime Core.
Client HTTP/2TsgcHTTP2ClientSìClient HTTP/2 nativo: stream multiplati, compressione degli header HPACK, negoziazione ALPN. Richiede sgcCustomIndy.
Client gRPCTsgcGRPCClientSìClient gRPC costruito sul client HTTP/2: RPC unarie, server-streaming, client-streaming e bidirezionali. Richiede sgcCustomIndy.
Google Cloud Pub/SubTsgcHTTPGoogleCloud_PubSub_ClientNo, solo-codiceAPI REST di Google Cloud Pub/Sub: topic, subscription, snapshot, publish e pull. HTTPS puro sul Core.
Google Cloud CalendarTsgcHTTPGoogleCloud_Calendar_ClientNo, solo-codiceGoogle Calendar API v3: calendari ed eventi, creazione, aggiornamento, elenco, eliminazione. HTTPS puro sul Core.
Google Cloud FCMTsgcHTTPGoogleCloud_FCM_ClientNo, solo-codiceAPI HTTP v1 di Firebase Cloud Messaging: invia un payload di notifica push con una sola chiamata. HTTPS puro sul Core.

Endpoint, file statici, sessioni

TsgcHTTPServer pubblica endpoint HTTP e file statici dalla tua applicazione. È lo stesso motore del server WebSocket di sgcWebSockets senza la parte WebSocket, e viene fornito con il runtime Core incluso.

FunzionalitàAPINote
AscoltoPort, Bindings, ActiveImposta la porta, oppure associa indirizzi specifici, poi attiva il server.
RichiesteOnCommandGet, OnCommandOtherOgni richiesta arriva al tuo codice con i suoi oggetti request e response. OnCommandOther copre verbi come PUT e DELETE.
File staticiDocumentRootRestituisce i file statici dalla cartella a cui lo punti.
CompressioneHTTPCompressionOpzioni di compressione delle risposte.
ConnessioniKeepAlive, MaxConnectionsMantieni aperte le connessioni tra una richiesta e l'altra, e limita quante ne possono essere aperte contemporaneamente.
SessioniSessionState, AutoStartSession, SessionTimeOut, OnSessionStart, OnSessionEndSessioni lato server con un timeout, più gli eventi di inizio e fine.
Limiti delle richiesteMaxRequestBodySizeLimita la dimensione del body di una richiesta.
UploadHTTPUploadFilesSalva i file caricati in una directory a tua scelta.
TLSSSL, SSLOptionsServi HTTPS con il tuo certificato.
AutenticazioneAuthentication, OnAuthenticationConvalida le credenziali nel tuo codice prima che una richiesta venga servita.
ThreadThreadPool, ThreadPoolOptionsRiutilizza i thread di lavoro da un pool invece di crearne uno per connessione.
RuntimesgcWebSockets CoreDichiarato nell'unità sgcHTTP_Server del runtime Core incluso, sulla pagina della palette SGC HTTP.

Richieste multiplate, HPACK, ALPN

TsgcHTTP2Client parla HTTP/2 (RFC 9113) su un'unica connessione TLS, negoziata con ALPN, il motivo per cui è costruito su sgcCustomIndy.

FunzionalitàAPINote
ConnessioneHost, Port, ActiveUn'unica connessione TLS porta ogni stream di richiesta multiplato.
ConnettiConnect, ConnectAsyncApre la connessione ed emette una richiesta opzionale nella stessa chiamata.
LeggiGet, GetAsyncChiamata sincrona oppure fire-and-forget con la risposta consegnata via evento.
ScriviPost, PostAsync, Put, PutAsync, Patch, PatchAsyncI corpi delle richieste sono stream, così gli upload non devono stare in memoria.
Delete e OptionsDelete, DeleteAsync, Options, OptionsAsyncIl resto del set di verbi HTTP, stesso abbinamento sincrono/asincrono.
RisposteOnHTTP2ResponseConsegna insieme l'oggetto richiesta e l'oggetto risposta, incluso Response.DataString e lo stato.
Corpi a blocchiOnHTTP2ResponseFragmentScatta a ogni frammento di una risposta a blocchi che arriva, prima dell'OnHTTP2Response finale.
Server pushOnHTTP2PushPromiseMostra le risorse inviate dal server con push HTTP/2 man mano che arrivano.
Ciclo di vita della connessioneOnHTTP2Connect, OnHTTP2Disconnect, OnHTTP2GoAway, OnHTTP2RSTStreamI segnali di connessione, disconnessione e reset dello stream definiti da HTTP/2.
ImpostazioniHTTP2Options, SettingsI valori del frame SETTINGS HTTP/2 locale inviati al peer.
AffidabilitàWatchDog, HeartBeat, ThrottleRiconnessione automatica, keep-alive e limitazione delle richieste, condivisi con il resto dello stack sgc HTTP.
Auth e TLSAuthentication, TLSOptions, OnHTTP2AuthorizationSchemi di autenticazione standard e configurazione TLS, più un hook per header di autorizzazione personalizzati.
DipendenzasgcCustomIndyALPN negozia il protocollo h2 durante l'handshake TLS; la libreria Indy standard non può farlo.

Streaming unario, server, client e bidirezionale

TsgcGRPCClient porta i payload Protocol Buffers sugli stream multiplati del client HTTP/2, quindi copre tutte e quattro le forme di chiamata gRPC.

FunzionalitàAPINote
TrasportoClientUn'istanza di TsgcHTTP2Client; il client gRPC vi si appoggia invece di aprire una propria connessione.
RPC unariaCall, CallAsync, CallStringUna richiesta, una risposta. Call blocca e restituisce un TsgcGRPCResponse; CallAsync la consegna tramite OnGRPCResponse.
Server streamingServerStreamingCallUna richiesta, uno stream di risposte consegnate tramite OnGRPCStreamMessage fino a OnGRPCStreamEnd.
Client streamingOpenClientStream, SendStreamMessage, CloseClientStream, CloseClientStreamAsyncUno stream di richieste, una risposta finale quando lo stream si chiude.
Streaming bidirezionaleOpenBidiStream, SendBidiMessage, CloseBidiStreamEntrambi i lati fanno streaming in modo indipendente sulla stessa chiamata.
AnnullamentoCancelCallAnnulla una chiamata in corso tramite il suo id di stream.
RisposteOnGRPCResponse, OnGRPCStreamMessage, OnGRPCStreamEndTsgcGRPCResponse porta StatusCode, Data/DataString, Headers e Trailers.
ErroriOnGRPCError, OnGRPCExceptionErrori con codice di stato gRPC ed eccezioni a livello di trasporto, consegnati separatamente.
MetadatiDefaultMetadata, OnGRPCBeforeRequestHeader di metadati gRPC per singola chiamata e predefiniti.
ResilienzaRetryPolicy, Interceptors, ServiceConfigComportamento di retry, una catena di interceptor trasversale, e configurazione del servizio, senza toccare i singoli punti di chiamata.
OsservabilitàMetricsCollectorRaccoglie le metriche delle chiamate per il client.
DipendenzasgcCustomIndyEreditata dal client HTTP/2 su cui è costruito; ALPN è richiesto allo stesso modo.

Pub/Sub, Calendar e notifiche push

Tre classi solo-codice, autenticate con un service account Google e raggiunte su HTTPS puro. Nessuna di loro richiede sgcCustomIndy.

FunzionalitàAPINote
AutenticazioneGoogleCloudOptions.JWT, OnAuthToken, OnAuthTokenErrorJWT del service account: project id, email client e chiave privata. Forma condivisa tra tutti e tre i client.
Pub/Sub: publish e pullPublish, Pull, Acknowledge, SeekTsgcHTTPGoogleCloud_PubSub_Client. Invia messaggi a un topic, preleva e conferma da una subscription.
Pub/Sub: topicCreateTopic, DeleteTopic, GetTopic, ListTopicsGestisci i topic direttamente da codice.
Pub/Sub: subscriptionCreateSubscription, DeleteSubscripton, ListSubscriptions, ModifyAckDeadlineSubscriptionCiclo di vita completo delle subscription, incluse le modifiche all'ack-deadline e alla push-config.
Pub/Sub: snapshotCreateSnapshot, DeleteSnapshot, ListSnapshotsCattura lo stato di conferma di una subscription per un replay successivo.
Calendar: calendariNewCalendar, UpdateCalendar, DeleteCalendar, LoadCalendarsTsgcHTTPGoogleCloud_Calendar_Client. Avvolge l'elenco calendari della Google Calendar API v3.
Calendar: eventiNewEvent, UpdateEvent, DeleteEvent, LoadEventsCrea, modifica ed elimina eventi su un dato calendario.
Calendar: sincronizzazioneLoadCalendarsChanged, LoadEventsChanged, OnGetCalendar, OnGetCalendarEventHook di sincronizzazione incrementale per calendari ed eventi cambiati dall'ultima sincronizzazione.
FCM: pushSendMessageTsgcHTTPGoogleCloud_FCM_Client. Una sola chiamata invia un payload Firebase Cloud Messaging v1 a un progetto.
TLS e logTLSOptions, LogFileCondivisi da tutti e tre i client Google Cloud.

API, compilatori e target

Standard pubblici sul filo, e lo stesso sorgente su ogni compilatore supportato.

AmbitoDettaglio
Server HTTPRichieste e risposte HTTP, file statici, sessioni e HTTPS tramite TsgcHTTPServer.
HTTP/2RFC 9113, con compressione degli header HPACK e negoziazione del protocollo ALPN.
gRPCPayload Protocol Buffers su stream HTTP/2, seguendo il protocollo sul filo di gRPC.
Google CloudL'API REST di Pub/Sub, la Google Calendar API v3, e l'API HTTP v1 di Firebase Cloud Messaging, tutte autenticate con un service account Google.
PiattaformeWindows Win32, Windows Win64, Linux64, macOS, iOS e Android per tutte e cinque le classi.
DipendenzaI client HTTP/2 e gRPC richiedono sgcCustomIndy per ALPN. I client Google Cloud richiedono solo il runtime Core incluso.
CompilatoriDelphi e C++ Builder dalla versione 7 alla 13.
EdizioniHTTP/2 e gRPC sono inclusi anche in sgcWebSockets a partire dalla Enterprise, e i client Google Cloud a partire dalla Standard. Il server HTTP fa parte del runtime Core, quindi lo include anche ogni edizione di sgcWebSockets.
LicenzeAutonomo. Il runtime sgcWebSockets Core è incluso e il codice sorgente completo fa parte della fornitura.
La scelta più conveniente: All-AccessTutti i prodotti eSeGeCe, con Supporto Premium incluso, a partire da €1,059/anno.
Vedi i prezzi All-Access

Costruisci con sgcHTTP

Scarica la versione di prova gratuita, pubblica il tuo primo endpoint HTTP e fai la tua prima chiamata HTTP/2 o gRPC da Delphi o C++ Builder.