Matryca funkcji sgcHTTP: HTTP/2, gRPC i Google Cloud | eSeGeCe

sgcHTTP Matryca funkcji

Wszystko, co robi sgcHTTP, rozpisane na klienta HTTP/2, klienta gRPC oraz trzy klienty Google Cloud. Każda funkcja działa tak samo w Delphi i C++ Builder, a każda licencja zawiera pełny kod źródłowy. Podstrony komponentów nie są jeszcze opublikowane przy tej premierze, każdy wpis poniżej jest samodzielny na tej stronie.

Klient HTTP/2

Multipleksowane strumienie, HPACK, ALPN

Klient gRPC

RPC unarne i strumieniowe

Google Cloud

Pub/Sub, Calendar i FCM

Standardy i platformy

Delphi od 7 do 13, C++ Builder

sgcHTTP jest samowystarczalny. Jest dostarczany z dołączonym środowiskiem uruchomieniowym sgcWebSockets Core, więc nie jest dodatkiem.

HTTP/2 i gRPC potrzebują sgcCustomIndy. Obie klasy wymagają ALPN do negocjacji protokołu TLS, czego standardowa biblioteka Indy nie obsługuje, więc są zamiast tego zbudowane na sgcCustomIndy. Jest on dodawany do twojego zamówienia automatycznie. Trzy klienty Google Cloud to zwykłe HTTPS i go nie potrzebują.

Pięć klas, jeden moduł

Dwa komponenty na stronie palety SGC HTTP oraz trzy klasy Google Cloud dostępne wyłącznie z kodu, wszystkie zadeklarowane w module sgcHTTP.

KomponentKlasaPaleta?Opis
Klient HTTP/2TsgcHTTP2ClientTakNatywny klient HTTP/2: multipleksowane strumienie, kompresja nagłówków HPACK, negocjacja ALPN. Wymaga sgcCustomIndy.
Klient gRPCTsgcGRPCClientTakKlient gRPC zbudowany na kliencie HTTP/2: RPC unarne, strumieniowane po stronie serwera, po stronie klienta i dwukierunkowe. Wymaga sgcCustomIndy.
Google Cloud Pub/SubTsgcHTTPGoogleCloud_PubSub_ClientNie, tylko kodAPI REST Google Cloud Pub/Sub: tematy, subskrypcje, migawki, publikowanie i pobieranie. Zwykłe HTTPS na Core.
Google Cloud CalendarTsgcHTTPGoogleCloud_Calendar_ClientNie, tylko kodGoogle Calendar API v3: kalendarze i wydarzenia, tworzenie, aktualizacja, listowanie, usuwanie. Zwykłe HTTPS na Core.
Google Cloud FCMTsgcHTTPGoogleCloud_FCM_ClientNie, tylko kodFirebase Cloud Messaging HTTP v1 API: wyślij ładunek powiadomienia push jednym wywołaniem. Zwykłe HTTPS na Core.

Multipleksowane żądania, HPACK, ALPN

TsgcHTTP2Client mówi w HTTP/2 (RFC 9113) przez jedno połączenie TLS, negocjowane przez ALPN, dlatego jest zbudowany na sgcCustomIndy.

MożliwośćAPIUwagi
PołączenieHost, Port, ActiveJedno połączenie TLS przenosi każdy multipleksowany strumień żądań.
Nawiązanie połączeniaConnect, ConnectAsyncOtwiera połączenie i opcjonalnie wysyła żądanie w tym samym wywołaniu.
OdczytGet, GetAsyncWywołanie synchroniczne albo fire-and-forget z odpowiedzią dostarczaną przez zdarzenie.
ZapisPost, PostAsync, Put, PutAsync, Patch, PatchAsyncTreści żądań to strumienie, więc przesyłane dane nie muszą mieścić się w pamięci.
Delete i OptionsDelete, DeleteAsync, Options, OptionsAsyncReszta zestawu czasowników HTTP, ten sam schemat synchroniczny/asynchroniczny.
OdpowiedziOnHTTP2ResponseDostarcza obiekty żądania i odpowiedzi razem, w tym Response.DataString i status.
Treści fragmentowane (chunked)OnHTTP2ResponseFragmentUruchamia się przy nadejściu każdego fragmentu odpowiedzi typu chunked, przed finalnym OnHTTP2Response.
Server pushOnHTTP2PushPromiseUjawnia zasoby wypychane przez serwer HTTP/2 (server push) w miarę ich nadejścia.
Cykl życia połączeniaOnHTTP2Connect, OnHTTP2Disconnect, OnHTTP2GoAway, OnHTTP2RSTStreamSygnały połączenia, rozłączenia i resetu strumienia zdefiniowane przez HTTP/2.
UstawieniaHTTP2Options, SettingsWartości lokalnej ramki SETTINGS protokołu HTTP/2 wysyłane do peera.
NiezawodnośćWatchDog, HeartBeat, ThrottleAutomatyczne ponowne łączenie, keep-alive i ograniczanie liczby żądań, wspólne z resztą stosu sgc HTTP.
Uwierzytelnianie i TLSAuthentication, TLSOptions, OnHTTP2AuthorizationStandardowe schematy uwierzytelniania i konfiguracja TLS, a także hak do niestandardowych nagłówków autoryzacji.
ZależnośćsgcCustomIndyALPN negocjuje protokół h2 podczas uzgadniania TLS; standardowa biblioteka Indy nie potrafi tego zrobić.

RPC unarne, strumieniowane po stronie serwera, klienta i dwukierunkowe

TsgcGRPCClient przenosi ładunki Protocol Buffers przez multipleksowane strumienie klienta HTTP/2, dzięki czemu obejmuje wszystkie cztery kształty wywołań gRPC.

MożliwośćAPIUwagi
TransportClientInstancja TsgcHTTP2Client; klient gRPC jeździ na niej, zamiast otwierać własne połączenie.
RPC unarneCall, CallAsync, CallStringJedno żądanie, jedna odpowiedź. Call blokuje i zwraca TsgcGRPCResponse; CallAsync dostarcza ją przez OnGRPCResponse.
Strumieniowanie po stronie serweraServerStreamingCallJedno żądanie, strumień odpowiedzi dostarczanych przez OnGRPCStreamMessage aż do OnGRPCStreamEnd.
Strumieniowanie po stronie klientaOpenClientStream, SendStreamMessage, CloseClientStream, CloseClientStreamAsyncStrumień żądań, jedna ostateczna odpowiedź po zamknięciu strumienia.
Strumieniowanie dwukierunkoweOpenBidiStream, SendBidiMessage, CloseBidiStreamObie strony strumieniują niezależnie w ramach tego samego wywołania.
AnulowanieCancelCallAnuluje trwające wywołanie po identyfikatorze jego strumienia.
OdpowiedziOnGRPCResponse, OnGRPCStreamMessage, OnGRPCStreamEndTsgcGRPCResponse niesie StatusCode, Data/DataString, Headers i Trailers.
BłędyOnGRPCError, OnGRPCExceptionBłędy kodu statusu gRPC i wyjątki na poziomie transportu, dostarczane osobno.
MetadaneDefaultMetadata, OnGRPCBeforeRequestNagłówki metadanych gRPC, domyślne i dla poszczególnych wywołań.
OdpornośćRetryPolicy, Interceptors, ServiceConfigZachowanie ponawiania, przekrojowy łańcuch przechwytywaczy (interceptorów) i konfiguracja usługi, bez dotykania poszczególnych miejsc wywołań.
ObserwowalnośćMetricsCollectorZbiera metryki wywołań dla klienta.
ZależnośćsgcCustomIndyOdziedziczona po kliencie HTTP/2, na którym jest zbudowany; ALPN jest wymagany w ten sam sposób.

Pub/Sub, Calendar i powiadomienia push

Trzy klasy dostępne wyłącznie z kodu, uwierzytelniane kontem usługi Google i osiągane przez zwykłe HTTPS. Żadna z nich nie potrzebuje sgcCustomIndy.

MożliwośćAPIUwagi
UwierzytelnianieGoogleCloudOptions.JWT, OnAuthToken, OnAuthTokenErrorJWT konta usługi: identyfikator projektu, adres e-mail klienta i klucz prywatny. Wspólny kształt dla wszystkich trzech klientów.
Pub/Sub: publikowanie i pobieraniePublish, Pull, Acknowledge, SeekTsgcHTTPGoogleCloud_PubSub_Client. Wysyłaj wiadomości do tematu, pobieraj i potwierdzaj z subskrypcji.
Pub/Sub: tematyCreateTopic, DeleteTopic, GetTopic, ListTopicsZarządzaj tematami bezpośrednio z kodu.
Pub/Sub: subskrypcjeCreateSubscription, DeleteSubscripton, ListSubscriptions, ModifyAckDeadlineSubscriptionPełny cykl życia subskrypcji, w tym zmiany terminu potwierdzenia i konfiguracji push.
Pub/Sub: migawkiCreateSnapshot, DeleteSnapshot, ListSnapshotsZrób migawkę stanu potwierdzeń subskrypcji do późniejszego odtworzenia.
Calendar: kalendarzeNewCalendar, UpdateCalendar, DeleteCalendar, LoadCalendarsTsgcHTTPGoogleCloud_Calendar_Client. Opakowuje listę kalendarzy Google Calendar API v3.
Calendar: wydarzeniaNewEvent, UpdateEvent, DeleteEvent, LoadEventsTwórz, zmieniaj i usuwaj wydarzenia w danym kalendarzu.
Calendar: synchronizacjaLoadCalendarsChanged, LoadEventsChanged, OnGetCalendar, OnGetCalendarEventHaki synchronizacji przyrostowej dla kalendarzy i wydarzeń zmienionych od ostatniej synchronizacji.
FCM: pushSendMessageTsgcHTTPGoogleCloud_FCM_Client. Jedno wywołanie wysyła ładunek Firebase Cloud Messaging v1 do projektu.
TLS i logowanieTLSOptions, LogFileWspólne dla wszystkich trzech klientów Google Cloud.

API, kompilatory i platformy docelowe

Oficjalne standardy na łączu i te same źródła we wszystkich obsługiwanych kompilatorach.

ObszarSzczegóły
HTTP/2RFC 9113, z kompresją nagłówków HPACK i negocjacją protokołu ALPN.
gRPCŁadunki Protocol Buffers przesyłane strumieniami HTTP/2, zgodnie z protokołem transmisji gRPC.
Google CloudAPI REST Pub/Sub, Google Calendar API v3 oraz Firebase Cloud Messaging HTTP v1 API, wszystkie uwierzytelniane kontem usługi Google.
PlatformyWindows Win32, Windows Win64, Linux64, macOS, iOS i Android dla wszystkich pięciu klas.
ZależnośćKlient HTTP/2 i klient gRPC potrzebują sgcCustomIndy dla ALPN. Klienty Google Cloud potrzebują tylko dołączonego środowiska uruchomieniowego Core.
KompilatoryDelphi i C++ Builder od 7 do 13.
EdycjeHTTP/2 jest dostarczany także wewnątrz sgcWebSockets od edycji Professional wzwyż, gRPC od edycji Enterprise wzwyż, a klienty Google Cloud od edycji Standard wzwyż.
LicencjonowanieProdukt samodzielny. Środowisko uruchomieniowe sgcWebSockets Core jest dołączone, a pełny kod źródłowy jest w zestawie.
Najkorzystniejsza oferta: All-AccessWszystkie produkty eSeGeCe, ze wsparciem Premium w cenie, już od €1,059 rocznie.
Zobacz cennik All-Access

Twórz z sgcHTTP

Pobierz bezpłatną wersję próbną i wykonaj swoje pierwsze wywołanie HTTP/2 lub gRPC z Delphi lub C++ Builder.