Matriz de recursos do sgcHTTP: HTTP/2, gRPC & Google Cloud | eSeGeCe

sgcHTTP matriz de recursos

Tudo o que o sgcHTTP faz, mapeado no cliente HTTP/2, no cliente gRPC e nos três clientes Google Cloud. Todo recurso funciona igual no Delphi e no C++ Builder, e toda licença entrega o código-fonte completo. As subpáginas de componente ainda não foram publicadas para este lançamento, cada item abaixo é autocontido nesta página.

Cliente HTTP/2

Streams multiplexados, HPACK, ALPN

Cliente gRPC

RPC unário & em streaming

Google Cloud

Pub/Sub, Calendar & FCM

Especificações & plataformas

Delphi 7 a 13, C++ Builder

O sgcHTTP é autossuficiente. Ele já vem com o runtime sgcWebSockets Core embutido, então não é um complemento.

HTTP/2 e gRPC precisam do sgcCustomIndy. As duas classes exigem ALPN para a negociação de protocolo TLS, o que a biblioteca Indy padrão não suporta, então são construídas sobre o sgcCustomIndy em vez disso. Ele é adicionado ao seu pedido automaticamente. Os três clientes Google Cloud são HTTPS puro e não precisam dele.

Cinco classes, uma unit

Dois componentes na página de paleta SGC HTTP, e três classes apenas de código do Google Cloud, todos declarados na unit sgcHTTP.

ComponenteClasseNa paleta?Descrição
Cliente HTTP/2TsgcHTTP2ClientSimCliente HTTP/2 nativo: streams multiplexados, compressão de cabeçalhos HPACK, negociação ALPN. Precisa do sgcCustomIndy.
Cliente gRPCTsgcGRPCClientSimCliente gRPC construído sobre o cliente HTTP/2: RPC unário, server-streaming, client-streaming e bidirecional. Precisa do sgcCustomIndy.
Google Cloud Pub/SubTsgcHTTPGoogleCloud_PubSub_ClientNão, apenas códigoAPI REST do Google Cloud Pub/Sub: tópicos, assinaturas, snapshots, publicação e leitura. HTTPS puro sobre o Core.
Google Cloud CalendarTsgcHTTPGoogleCloud_Calendar_ClientNão, apenas códigoGoogle Calendar API v3: calendários e eventos, criar, atualizar, listar, excluir. HTTPS puro sobre o Core.
Google Cloud FCMTsgcHTTPGoogleCloud_FCM_ClientNão, apenas códigoAPI HTTP v1 do Firebase Cloud Messaging: envie um payload de notificação push com uma única chamada. HTTPS puro sobre o Core.

Requisições multiplexadas, HPACK, ALPN

TsgcHTTP2Client fala HTTP/2 (RFC 9113) sobre uma única conexão TLS, negociada com ALPN, razão pela qual é construído sobre o sgcCustomIndy.

RecursoAPIObservações
ConexãoHost, Port, ActiveUma conexão TLS carrega todo stream de requisição multiplexado.
ConnectConnect, ConnectAsyncAbre a conexão e emite uma requisição opcional na mesma chamada.
LeituraGet, GetAsyncChamada síncrona ou dispare-e-esqueça com a resposta entregue por evento.
EscritaPost, PostAsync, Put, PutAsync, Patch, PatchAsyncOs corpos de requisição são streams, então uploads não precisam caber na memória.
Delete & OptionsDelete, DeleteAsync, Options, OptionsAsyncO restante do conjunto de verbos HTTP, com o mesmo pareamento síncrono/assíncrono.
RespostasOnHTTP2ResponseEntrega os objetos de requisição e resposta juntos, incluindo Response.DataString e o status.
Corpos em chunksOnHTTP2ResponseFragmentDispara a cada fragmento de uma resposta em chunks que chega, antes do OnHTTP2Response final.
Server pushOnHTTP2PushPromiseExpõe recursos enviados por server push do HTTP/2 conforme chegam.
Ciclo de vida da conexãoOnHTTP2Connect, OnHTTP2Disconnect, OnHTTP2GoAway, OnHTTP2RSTStreamOs sinais de conexão, desconexão e reset de stream definidos pelo HTTP/2.
SettingsHTTP2Options, SettingsOs valores do frame local HTTP/2 SETTINGS enviados ao peer.
ConfiabilidadeWatchDog, HeartBeat, ThrottleReconexão automática, keep-alive e limitação de requisições, compartilhados com o restante da pilha HTTP do sgc.
Auth & TLSAuthentication, TLSOptions, OnHTTP2AuthorizationEsquemas de autenticação padrão e configuração de TLS, mais um gancho para cabeçalhos de autorização personalizados.
DependênciasgcCustomIndyO ALPN negocia o protocolo h2 durante o handshake TLS; a biblioteca Indy padrão não consegue fazer isso.

Streaming unário, server, client e bidirecional

TsgcGRPCClient carrega payloads Protocol Buffers sobre os streams multiplexados do cliente HTTP/2, então cobre as quatro formas de chamada do gRPC.

RecursoAPIObservações
TransporteClientUma instância de TsgcHTTP2Client; o cliente gRPC roda sobre ela em vez de abrir a sua própria conexão.
RPC unárioCall, CallAsync, CallStringUma requisição, uma resposta. Call bloqueia e retorna um TsgcGRPCResponse; CallAsync a entrega através de OnGRPCResponse.
Server streamingServerStreamingCallUma requisição, um stream de respostas entregue através de OnGRPCStreamMessage até OnGRPCStreamEnd.
Client streamingOpenClientStream, SendStreamMessage, CloseClientStream, CloseClientStreamAsyncUm stream de requisições, uma resposta final quando o stream é fechado.
Streaming bidirecionalOpenBidiStream, SendBidiMessage, CloseBidiStreamOs dois lados fazem streaming de forma independente sobre a mesma chamada.
CancelamentoCancelCallCancela uma chamada em andamento pelo seu id de stream.
RespostasOnGRPCResponse, OnGRPCStreamMessage, OnGRPCStreamEndTsgcGRPCResponse carrega StatusCode, Data/DataString, Headers e Trailers.
ErrosOnGRPCError, OnGRPCExceptionErros de status-code do gRPC e exceções em nível de transporte, entregues separadamente.
MetadadosDefaultMetadata, OnGRPCBeforeRequestCabeçalhos de metadados do gRPC por chamada e padrão.
ResiliênciaRetryPolicy, Interceptors, ServiceConfigComportamento de retry, uma cadeia de interceptors transversal, e configuração de serviço, sem tocar nos pontos de chamada individuais.
ObservabilidadeMetricsCollectorColeta métricas de chamadas do cliente.
DependênciasgcCustomIndyHerdada do cliente HTTP/2 sobre o qual é construído; o ALPN é exigido da mesma forma.

Pub/Sub, Calendar e notificações push

Três classes apenas de código, autenticadas com uma conta de serviço Google e alcançadas sobre HTTPS puro. Nenhuma delas precisa do sgcCustomIndy.

RecursoAPIObservações
AutenticaçãoGoogleCloudOptions.JWT, OnAuthToken, OnAuthTokenErrorJWT de conta de serviço: id de projeto, e-mail de cliente e chave privada. Forma compartilhada pelos três clientes.
Pub/Sub: publicar & lerPublish, Pull, Acknowledge, SeekTsgcHTTPGoogleCloud_PubSub_Client. Envie mensagens para um tópico, leia e confirme de uma assinatura.
Pub/Sub: tópicosCreateTopic, DeleteTopic, GetTopic, ListTopicsGerencie tópicos diretamente pelo código.
Pub/Sub: assinaturasCreateSubscription, DeleteSubscripton, ListSubscriptions, ModifyAckDeadlineSubscriptionCiclo de vida completo de assinaturas, incluindo alterações de prazo de confirmação e configuração de push.
Pub/Sub: snapshotsCreateSnapshot, DeleteSnapshot, ListSnapshotsTire um snapshot do estado de confirmação de uma assinatura para reprodução posterior.
Calendar: calendáriosNewCalendar, UpdateCalendar, DeleteCalendar, LoadCalendarsTsgcHTTPGoogleCloud_Calendar_Client. Encapsula a lista de calendários da Google Calendar API v3.
Calendar: eventosNewEvent, UpdateEvent, DeleteEvent, LoadEventsCrie, altere e remova eventos em um determinado calendário.
Calendar: sincronizaçãoLoadCalendarsChanged, LoadEventsChanged, OnGetCalendar, OnGetCalendarEventGanchos de sincronização incremental para calendários e eventos alterados desde a última sincronização.
FCM: pushSendMessageTsgcHTTPGoogleCloud_FCM_Client. Uma chamada envia um payload v1 do Firebase Cloud Messaging para um projeto.
TLS e logTLSOptions, LogFileCompartilhado pelos três clientes Google Cloud.

APIs, compiladores e destinos

Especificações públicas no wire, e o mesmo código-fonte em todo compilador compatível.

ÁreaDetalhe
HTTP/2RFC 9113, com compressão de cabeçalhos HPACK e negociação de protocolo ALPN.
gRPCPayloads Protocol Buffers sobre streams HTTP/2, seguindo o protocolo de wire do gRPC.
Google CloudA API REST do Pub/Sub, a Google Calendar API v3, e a API HTTP v1 do Firebase Cloud Messaging, todas autenticadas com uma conta de serviço Google.
PlataformasWindows Win32, Windows Win64, Linux64, macOS, iOS e Android para as cinco classes.
DependênciaOs clientes HTTP/2 e gRPC precisam do sgcCustomIndy para o ALPN. Os clientes Google Cloud precisam apenas do runtime Core embutido.
CompiladoresDelphi e C++ Builder 7 até 13.
EdiçõesO HTTP/2 também vem dentro do sgcWebSockets a partir da Professional, o gRPC a partir da Enterprise, e os clientes Google Cloud a partir da Standard.
LicenciamentoAutônomo. O runtime sgcWebSockets Core vem embutido e o código-fonte completo está incluído.
Melhor custo-benefício: All-AccessTodos os produtos da eSeGeCe, com Suporte Premium incluído, a partir de €1,059/ano.
Ver preços do All-Access

Construa com o sgcHTTP

Baixe a avaliação gratuita e faça a sua primeira chamada HTTP/2 ou gRPC a partir do Delphi ou do C++ Builder.