sgcHTTPHTTP-server, HTTP/2 en gRPC,native in Delphi.Ook Google Cloud.
Een HTTP-server en vijf clientcomponenten. TsgcHTTPServer publiceert HTTP-endpoints en statische bestanden vanuit je eigen applicatie. TsgcHTTP2Client spreekt HTTP/2 met gemultiplexte streams over één TLS-verbinding en HPACK-headercompressie. TsgcGRPCClient is een gRPC-client die erop voortbouwt, voor unary en streaming Protocol Buffers-aanroepen. Drie extra klassen bereiken Google Cloud via gewone HTTPS: Pub/Sub, Calendar en Firebase Cloud Messaging.
Een ingesproken quickstart met ondertitels: een HTTP/2-client die veel requests over één verbinding verstuurt, gevolgd door een gRPC-aanroep op datzelfde transport, allemaal vanuit Delphi. Er wordt niets gedownload tot je op afspelen drukt.
sgcHTTP-quickstart
Roep een HTTP/2-endpoint aan en doe een gRPC-aanroep, vanuit Delphi.
Maak de HTTP/2-client aanMaak een TsgcHTTP2Client aan, verwerk OnHTTP2Response en roep Get aan. Het h2-protocol wordt tijdens de TLS-handshake via ALPN onderhandeld.
Veel requests, één verbindingRequests delen één TCP-verbinding als onafhankelijke streams, dus één trage respons houdt de andere niet op.
gRPC op hetzelfde transportWijs de HTTP/2-client toe aan de gRPC-client en roep een methode aan via service en naam. Berichten reizen als Protocol Buffers met lengteprefix.
Vier RPC-patronenUnary, server streaming, client streaming en bidirectionele streaming, elk met een eigen methode op TsgcGRPCClient.
Twee palettecomponenten
Een HTTP/2-client, met gRPC erbovenop.
Beide componenten zijn gedeclareerd in de sgcHTTP unit, en TsgcGRPCClient heeft via de eigenschap Client zijn eigen HTTP/2-verbinding.
Gemultiplexte streams over één TLS-verbinding
TsgcHTTP2Client spreekt HTTP/2 (RFC 9113): meerdere requests delen één TCP-verbinding als onafhankelijke streams. Headers worden gecomprimeerd met HPACK, en h2 wordt tijdens de TLS-handshake via ALPN onderhandeld. Elke methode wordt gedekt: Get, Post, Put, Patch, Delete en Options, elk met een synchrone aanroep en een Async-tegenhanger.
Unary en streaming RPC op de HTTP/2-client
TsgcGRPCClient erft de gemultiplexte verbinding en voegt er het gRPC-wireformaat aan toe. Call en CallAsync dekken unary RPC's, ServerStreamingCall verwerkt een stroom van responsen op één request, en OpenClientStream en OpenBidiStream dekken client streaming en bidirectionele streaming. RetryPolicy, Interceptors en ServiceConfig voegen retrygedrag en overkoepelende logica toe zonder de aanroepplekken aan te raken.
Eén server, vijf clientklassen
Twee afhankelijkheden, geen vijf.
De vijf klassen laten zich netjes indelen naar wat ze eronder nodig hebben. HTTP/2 en gRPC hebben ALPN nodig, en dat betekent sgcCustomIndy. Google Cloud heeft niets nodig buiten HTTPS en een serviceaccount, wat de meegeleverde Core-runtime al biedt. De HTTP-server komt uit diezelfde runtime.
HTTP-server
TsgcHTTPServer publiceert HTTP-endpoints vanuit je eigen applicatie. Stel Port in, verwerk OnCommandGet, zet Active aan, en elk verzoek bereikt je code. OnCommandOther dekt verbs zoals PUT en DELETE. Wordt meegeleverd met de Core-runtime.
Statische bestanden en uploads
Wijs DocumentRoot naar een map en de server levert er statische bestanden uit. HTTPUploadFiles slaat geüploade bestanden op schijf op, MaxRequestBodySize begrenst de grootte van request bodies, en HTTPCompression en KeepAlive houden responses klein en verbindingen open.
Klaar voor productie
SSL en SSLOptions schakelen TLS in, Authentication en OnAuthentication beschermen endpoints, SessionState houdt sessies bij, en ThreadPool en MaxConnections bepalen hoe het schaalt. Dezelfde engine als de WebSocket-server, zonder het WebSocket-deel.
HTTP/2
TsgcHTTP2Client multiplext onafhankelijke streams over één TLS-verbinding, comprimeert headers met HPACK en onderhandelt over h2 via ALPN. Connect, Get, Post, Put, Patch, Delete en Options, synchroon of Async.
gRPC
TsgcGRPCClient draait op de HTTP/2-client: Protocol Buffers-berichten met lengteprefix over HTTP/2-streams, met unary, server streaming, client streaming en bidirectionele RPC's, plus retrybeleid en interceptors.
Google Cloud, gewone HTTPS
TsgcHTTPGoogleCloud_PubSub_Client, TsgcHTTPGoogleCloud_Calendar_Client en TsgcHTTPGoogleCloud_FCM_Client bereiken Pub/Sub, Calendar en Firebase Cloud Messaging, geauthenticeerd met een Google-serviceaccount. Geen van hen heeft sgcCustomIndy nodig.
Server push en chunked bodies
Events leggen de levenscyclus van de verbinding bloot: OnHTTP2Connect, OnHTTP2Response, OnHTTP2ResponseFragment voor chunked bodies, OnHTTP2PushPromise voor server push, OnHTTP2GoAway en OnHTTP2Disconnect. Niets over de levenscyclus van de stream blijft voor je verborgen.
Eén afhankelijkheid voor twee, geen voor drie
De HTTP/2- en gRPC-clients bouwen voort op sgcCustomIndy, dat hetzelfde platformbereik dekt als sgcWebSockets zelf. De Google Cloud-clients zijn gewone HTTPS en draaien dus overal waar de Core-runtime draait. Delphi 7 tot en met RAD Studio 13, en C++ Builder.
Volledige broncode in de doos
Elke licentie bevat de volledige broncode van de HTTP-server, alle vijf clients en de meegeleverde runtime, zodat je de implementaties op wire-niveau in je eigen debugger kunt doorlopen. Distributie is royaltyvrij.
Maak het component aan, stel een poort in of wijs het naar een host, koppel het event en ga aan de slag. Dezelfde code compileert in Delphi 7 tot 13 en C++ Builder.
Maak het component aanDe clients staan in de unit sgcHTTP, de server in sgcHTTP_Server. TsgcGRPCClient heeft via de eigenschap Client zijn eigen HTTP/2-verbinding.
Wijs hem naar een hostEen https://-host is voldoende. ALPN onderhandelt over h2 tijdens de TLS-handshake en HPACK comprimeert de headers.
Koppel het respons-eventOnHTTP2Response en OnGRPCResponse geven je de gedecodeerde body, met het request en de verbinding erbij.
Verstuur, synchroon of nietElke methode en elke RPC heeft een blokkerende aanroep en een Async-tegenhanger, zodat de UI-thread vrij blijft.
Wat sgcHTTP van je vraagt en wat niet. Beide antwoorden zijn kort en staan op deze pagina in plaats van in het kleine lettertje.
Afhankelijkheden per client
class needs sgcCustomIndyTsgcHTTPServerno, ships with the Core runtimeTsgcHTTP2Clientyes, for ALPNTsgcGRPCClientyes, rides on TsgcHTTP2ClientTsgcHTTPGoogleCloud_PubSub_Clientno, plain HTTPSTsgcHTTPGoogleCloud_Calendar_Clientno, plain HTTPSTsgcHTTPGoogleCloud_FCM_Clientno, plain HTTPSHTTP/2 negotiates h2 with ALPN during the TLS handshake.
The standard Indy library that ships with RAD Studio
has no ALPN support, so both HTTP/2 and gRPC are built
on sgcCustomIndy instead.
sgcHTTP is zelfstandig
De sgcWebSockets Core-runtime is inbegrepen: de HTTP-server, de HTTP/TLS-clientstack waar elke client zijn requests doorheen stuurt, en de JSON-laag die Google Cloud-responsen decodeert. Eén installatieprogramma, volledige broncode in de doos.
HTTP/2 en gRPC hebben sgcCustomIndy nodig
ALPN-onderhandeling wordt niet ondersteund door de standaard Indy-bibliotheek, dus TsgcHTTP2Client en, bij uitbreiding, TsgcGRPCClient zijn gebouwd op sgcCustomIndy in plaats daarvan. Het is altijd inbegrepen als je sgcHTTP bestelt en de getoonde prijs dekt het al.
Google Cloud heeft alleen HTTPS nodig
De drie Google Cloud-clients authenticeren met de project-id, het client-e-mailadres en de private key van een Google-serviceaccount en roepen de REST-API's aan via de gewone HTTPS-stack van de Core-runtime. Geen native bibliotheek, geen sgcCustomIndy.
Delphi en C++ Builder
sgcHTTP richt zich op Delphi 7 tot en met RAD Studio 13 en C++ Builder. Dezelfde componenten zitten ook in sgcWebSockets Enterprise, dus een bestaande Enterprise- of All-Access-licentie dekt je mogelijk al. Het proefinstallatieprogramma is de All-Access-proefversie van sgcWebSockets, zodat je de HTTP-server en alle vijf clients vandaag nog kunt evalueren.
ALPN
HPACK
Protocol Buffers
Serviceaccount-JWT
Volledige broncode
sgcHTTP implementeert de gepubliceerde HTTP/2-, gRPC- en Google Cloud REST-interfaces in plaats van een SDK van een leverancier te omhullen. Streams, headers, RPC's en pushmeldingen zijn dus volwaardige methoden en events, en dankzij de volledige broncode is niets ertussen een black box.
Onderdeel van sgcWebSockets
Eén pakket van sgcWebSockets, afzonderlijk gelicentieerd.
sgcHTTP bundelt de sgcWebSockets Core-runtime waarop het gebouwd is, en de sgcCustomIndy-add-on die HTTP/2 en gRPC nodig hebben is altijd inbegrepen. Elke licentie bevat de volledige broncode en royaltyvrije distributie.
Single
1 ontwikkelaarslicentie. Gebruik op één machine tegelijk.
€398
Team
2 ontwikkelaarslicenties. Gebruik op twee machines tegelijk.
€648
Site
Onbeperkt aantal ontwikkelaars. Alle bedrijfsmachines.
€1,048
HTTP/2-, gRPC- en Google Cloud-clientcomponenten voor Delphi en C++ Builder, met de sgcWebSockets Core-runtime meegeleverd. Al op sgcWebSockets Enterprise? Dezelfde componenten zitten daar ook in.
Vertrouwd door Delphi-, C++ Builder-, Lazarus- en .NET-ontwikkelaars over de hele wereld.
Jullie sgcWebSockets-bibliotheek is erg handig en eenvoudig op te zetten. Ga zo door!
Simone MorettiDelphi-ontwikkelaar
sgcWebSockets is geweldig en jullie support is de beste!
Christian MeyerOprichter & CTO
Heel erg bedankt voor jullie hulp en ondersteuning, ik ben dol op jullie componenten.
Mark SteinfeldCTO
Modern HTTP, gRPC en Google Cloud vanuit native code.
Een HTTP-server, gemultiplexte HTTP/2, streaming gRPC en drie Google Cloud-clients, met de sgcWebSockets Core-runtime meegeleverd en volledige broncode in de doos.
sgcHTTP deelt conventies met de andere componentbibliotheken van eSeGeCe voor Delphi, C++ Builder en .NET. Ze worden met volledige broncode geleverd en zijn royaltyvrij te distribueren.
Niet-goed-geld-terug-garantie van 30 dagenNiet tevreden? Vraag binnen 30 dagen na aankoop een volledige terugbetaling aan. Bekijk het terugbetalingsbeleid