Matriz de características de sgcHTTP: HTTP/2, gRPC y Google Cloud | eSeGeCe

sgcHTTP: matriz de características

Todo lo que hace sgcHTTP, repartido entre el cliente HTTP/2, el cliente gRPC y los tres clientes de Google Cloud. Cada capacidad funciona igual en Delphi y en C++ Builder, y todas las licencias incluyen el código fuente completo. Las subpáginas de componentes aún no están publicadas para este lanzamiento, cada entrada de abajo es autocontenida en esta página.

Cliente HTTP/2

Streams multiplexados, HPACK, ALPN

Cliente gRPC

RPC unario y en streaming

Google Cloud

Pub/Sub, Calendar y FCM

Estándares y plataformas

Delphi 7 a 13, C++ Builder

sgcHTTP es autocontenido. Se entrega con el runtime sgcWebSockets Core incluido, así que no es un complemento.

HTTP/2 y gRPC necesitan sgcCustomIndy. Ambas clases requieren ALPN para la negociación del protocolo TLS, algo que la librería Indy estándar no admite, así que están construidas en su lugar sobre sgcCustomIndy. Se añade a tu pedido automáticamente. Los tres clientes de Google Cloud son HTTPS puro y no lo necesitan.

Cinco clases, una unidad

Dos componentes en la página de paleta SGC HTTP, y tres clases de Google Cloud solo de código, todas declaradas en la unidad sgcHTTP.

ComponenteClase¿Paleta?Descripción
Cliente HTTP/2TsgcHTTP2ClientCliente HTTP/2 nativo: streams multiplexados, compresión de cabeceras HPACK, negociación ALPN. Necesita sgcCustomIndy.
Cliente gRPCTsgcGRPCClientCliente gRPC construido sobre el cliente HTTP/2: RPC unario, de streaming de servidor, de streaming de cliente y bidireccional. Necesita sgcCustomIndy.
Google Cloud Pub/SubTsgcHTTPGoogleCloud_PubSub_ClientNo, solo códigoAPI REST de Google Cloud Pub/Sub: topics, suscripciones, snapshots, publicación y extracción. HTTPS puro sobre Core.
Google Cloud CalendarTsgcHTTPGoogleCloud_Calendar_ClientNo, solo códigoGoogle Calendar API v3: calendarios y eventos, crear, actualizar, listar, eliminar. HTTPS puro sobre Core.
Google Cloud FCMTsgcHTTPGoogleCloud_FCM_ClientNo, solo códigoAPI HTTP v1 de Firebase Cloud Messaging: envía un payload de notificación push con una sola llamada. HTTPS puro sobre Core.

Peticiones multiplexadas, HPACK, ALPN

TsgcHTTP2Client habla HTTP/2 (RFC 9113) sobre una sola conexión TLS, negociada con ALPN, la razón por la que está construido sobre sgcCustomIndy.

CapacidadAPINotas
ConexiónHost, Port, ActiveUna sola conexión TLS transporta todos los streams de petición multiplexados.
ConectarConnect, ConnectAsyncAbre la conexión y emite una petición opcional en la misma llamada.
LecturaGet, GetAsyncLlamada síncrona o disparar y olvidar, con la respuesta entregada por evento.
EscrituraPost, PostAsync, Put, PutAsync, Patch, PatchAsyncLos cuerpos de petición son streams, así que las subidas no tienen que caber en memoria.
Delete y OptionsDelete, DeleteAsync, Options, OptionsAsyncEl resto del conjunto de verbos HTTP, con el mismo emparejamiento síncrono/asíncrono.
RespuestasOnHTTP2ResponseEntrega juntos los objetos de petición y respuesta, incluidos Response.DataString y el estado.
Cuerpos fragmentadosOnHTTP2ResponseFragmentSe dispara según llega cada fragmento de una respuesta fragmentada, antes del OnHTTP2Response final.
Server pushOnHTTP2PushPromiseExpone los recursos enviados por server push de HTTP/2 según llegan.
Ciclo de vida de la conexiónOnHTTP2Connect, OnHTTP2Disconnect, OnHTTP2GoAway, OnHTTP2RSTStreamLas señales de conexión, desconexión y reinicio de stream que define HTTP/2.
SettingsHTTP2Options, SettingsLos valores del frame SETTINGS local de HTTP/2 enviados al peer.
FiabilidadWatchDog, HeartBeat, ThrottleReconexión automática, keep-alive y limitación de peticiones, compartidos con el resto de la pila HTTP de sgc.
Autenticación y TLSAuthentication, TLSOptions, OnHTTP2AuthorizationEsquemas de autenticación estándar y configuración TLS, además de un gancho para cabeceras de autorización personalizadas.
DependenciasgcCustomIndyALPN negocia el protocolo h2 durante el handshake TLS; la librería Indy estándar no puede hacerlo.

Streaming unario, de servidor, de cliente y bidireccional

TsgcGRPCClient transporta payloads de Protocol Buffers sobre los streams multiplexados del cliente HTTP/2, así que cubre las cuatro formas de llamada de gRPC.

CapacidadAPINotas
TransporteClientUna instancia de TsgcHTTP2Client; el cliente gRPC viaja sobre ella en lugar de abrir su propia conexión.
RPC unarioCall, CallAsync, CallStringUna petición, una respuesta. Call bloquea y devuelve un TsgcGRPCResponse; CallAsync la entrega a través de OnGRPCResponse.
Streaming de servidorServerStreamingCallUna petición, un stream de respuestas entregadas a través de OnGRPCStreamMessage hasta OnGRPCStreamEnd.
Streaming de clienteOpenClientStream, SendStreamMessage, CloseClientStream, CloseClientStreamAsyncUn stream de peticiones, una respuesta final cuando el stream se cierra.
Streaming bidireccionalOpenBidiStream, SendBidiMessage, CloseBidiStreamAmbos lados hacen streaming de forma independiente sobre la misma llamada.
CancelaciónCancelCallCancela una llamada en curso mediante su id de stream.
RespuestasOnGRPCResponse, OnGRPCStreamMessage, OnGRPCStreamEndTsgcGRPCResponse transporta StatusCode, Data/DataString, Headers y Trailers.
ErroresOnGRPCError, OnGRPCExceptionErrores de código de estado de gRPC y excepciones a nivel de transporte, entregados por separado.
MetadatosDefaultMetadata, OnGRPCBeforeRequestCabeceras de metadatos de gRPC por llamada y por defecto.
ResilienciaRetryPolicy, Interceptors, ServiceConfigComportamiento de reintento, una cadena de interceptores transversal y configuración del servicio, sin tocar los puntos de llamada individuales.
ObservabilidadMetricsCollectorRecopila métricas de llamadas del cliente.
DependenciasgcCustomIndyHeredada del cliente HTTP/2 sobre el que está construido; ALPN se requiere de la misma forma.

Pub/Sub, Calendar y notificaciones push

Tres clases solo de código, autenticadas con una cuenta de servicio de Google y accedidas sobre HTTPS puro. Ninguna necesita sgcCustomIndy.

CapacidadAPINotas
AutenticaciónGoogleCloudOptions.JWT, OnAuthToken, OnAuthTokenErrorJWT de cuenta de servicio: project id, client email y private key. La misma forma en los tres clientes.
Pub/Sub: publicación y extracciónPublish, Pull, Acknowledge, SeekTsgcHTTPGoogleCloud_PubSub_Client. Envía mensajes a un topic, extrae y confirma desde una suscripción.
Pub/Sub: topicsCreateTopic, DeleteTopic, GetTopic, ListTopicsGestiona topics directamente desde código.
Pub/Sub: suscripcionesCreateSubscription, DeleteSubscripton, ListSubscriptions, ModifyAckDeadlineSubscriptionCiclo de vida completo de la suscripción, incluidos los cambios de ack-deadline y push-config.
Pub/Sub: snapshotsCreateSnapshot, DeleteSnapshot, ListSnapshotsToma una instantánea del estado de confirmación de una suscripción para reproducirla más tarde.
Calendar: calendariosNewCalendar, UpdateCalendar, DeleteCalendar, LoadCalendarsTsgcHTTPGoogleCloud_Calendar_Client. Envuelve la lista de calendarios de la Google Calendar API v3.
Calendar: eventosNewEvent, UpdateEvent, DeleteEvent, LoadEventsCrea, cambia y elimina eventos en un calendario dado.
Calendar: sincronizaciónLoadCalendarsChanged, LoadEventsChanged, OnGetCalendar, OnGetCalendarEventGanchos de sincronización incremental para los calendarios y eventos que cambiaron desde la última sincronización.
FCM: pushSendMessageTsgcHTTPGoogleCloud_FCM_Client. Una llamada envía un payload de Firebase Cloud Messaging v1 a un proyecto.
TLS y registroTLSOptions, LogFileCompartidos por los tres clientes de Google Cloud.

APIs, compiladores y destinos

Estándares públicos en el cable, y el mismo código fuente en todos los compiladores compatibles.

ÁreaDetalle
HTTP/2RFC 9113, con compresión de cabeceras HPACK y negociación de protocolo ALPN.
gRPCPayloads de Protocol Buffers sobre streams HTTP/2, siguiendo el protocolo de red de gRPC.
Google CloudLa API REST de Pub/Sub, la Google Calendar API v3 y la API HTTP v1 de Firebase Cloud Messaging, todas autenticadas con una cuenta de servicio de Google.
PlataformasWindows Win32, Windows Win64, Linux64, macOS, iOS y Android para las cinco clases.
DependenciaLos clientes HTTP/2 y gRPC necesitan sgcCustomIndy para ALPN. Los clientes de Google Cloud solo necesitan el runtime Core incluido.
CompiladoresDelphi y C++ Builder 7 a 13.
EdicionesHTTP/2 también se entrega dentro de sgcWebSockets desde Professional en adelante, gRPC desde Enterprise en adelante, y los clientes de Google Cloud desde Standard en adelante.
LicenciasIndependiente. El runtime sgcWebSockets Core viene incluido y se entrega el código fuente completo.
La mejor opción: All-AccessTodos los productos de eSeGeCe, con Premium Support incluido, desde €1,059 al año.
Ver precios de All-Access

Crea con sgcHTTP

Descarga la prueba gratuita y haz tu primera llamada HTTP/2 o gRPC desde Delphi o C++ Builder.