Skip to Content
Nuova versione 12 disponibile 🎉

gRPC Web

Il Babel Licensing Service supporta gRPC Web perché permette a un’ampia gamma di applicazioni, comprese quelle Xamarin e UWP, di interagire con i servizi gRPC. Con gRPC-Web queste applicazioni possono chiamare direttamente i servizi gRPC usando il client gRPC Web e Protobuf.

L’importanza di gRPC Web sta nella sua compatibilità con HTTP/1.1 e con i browser. Mentre gRPC tradizionale si basa su funzionalità di HTTP/2 che non tutti i browser e le tecnologie supportano, gRPC Web ha un protocollo leggermente diverso che lo rende compatibile con HTTP/1. Le applicazioni per browser, comprese quelle realizzate con Xamarin e UWP, possono così beneficiare delle prestazioni elevate e del ridotto uso della rete offerti dai messaggi binari di gRPC.

gRPC Web elimina la necessità di meccanismi di comunicazione separati o di soluzioni alternative per i client Xamarin, e rende più semplice integrare il Babel Licensing Service in un’ampia gamma di applicazioni, comprese quelle destinate alle piattaforme UWP.

Server

Per abilitare gRPC-Web nel Babel Licensing Service devi apportare le seguenti modifiche alla configurazione:

Aggiorna la configurazione dell’endpoint Kestrel

Aggiorna la configurazione dell’endpoint Kestrel nel file appsettings.json. Assicurati che la proprietà “Protocols” includa “Http1AndHttp2” per abilitare entrambi i protocolli HTTP/1.1 e HTTP/2:

"Endpoints": { "gRPC": { "Url": "https://localhost:5005", "Protocols": "Http1AndHttp2" // other properties... } }

Abilita gRPC-Web nella sezione Application

Imposta la proprietà “EnableGrpcWeb” nella sezione “Application” del file appsettings.json su true. Questo indica che gRPC-Web deve essere abilitato. Per esempio:

"Application": { "EnableGrpcWeb": true, // other properties... }

Abilita il supporto SSL/TLS

Abilita il supporto SSL/TLS nel progetto del Babel Licensing Service per garantire la negoziazione del protocollo tramite le capacità ALPN fornite dall’estensione del livello TLS.

"Endpoints": { "gRPC": { "Url": "https://localhost:5005", "Protocols": "Http1AndHttp2", "Certificate": { "AllowInvalid": true, "Path": "<cert file>.pfx", "Password": "<cert password>" } } }

Configurando il Babel Licensing Service con queste impostazioni abiliti il supporto gRPC-Web, che permette alle applicazioni client basate su browser, comprese le applicazioni Xamarin e UWP, di comunicare con il servizio tramite gRPC-Web. Ne risultano un’integrazione semplice e una comunicazione efficiente tra le applicazioni client e il Babel Licensing Service, con i vantaggi di gRPC per una trasmissione dei dati sicura e ad alte prestazioni.

Client

Per abilitare gRPC Web nella tua applicazione client e connetterla al Babel Licensing Service, segui questi passi:

  1. Aggiungi al tuo progetto il riferimento al pacchetto NuGet:
Grpc.Net.Client.Web
  1. Nel codice, configura il client BabelLicensing con il metodo BabelLicensing.Configure. Imposta la proprietà ServiceUrl sull’URL dell’endpoint del tuo Babel Licensing Service.
BabelLicensing.Configure(config => { config.ServiceUrl = "https://localhost:5005"; var certificate = new X509Certificate2("<cert file>.pfx", "<cert password>"); config.UseGrpc(options => { options.HttpHandler = new GrpcWebHandler(new HttpClientHandler() { ClientCertificates = { certificate }, ServerCertificateCustomValidationCallback = HttpClientHandler.DangerousAcceptAnyServerCertificateValidator }); }); });

Nel frammento di codice qui sopra, sostituisci <cert file>.pfx con il percorso del file del tuo certificato SSL/TLS e <cert password> con la password del certificato.

Questa configurazione imposta il client gRPC Web con il metodo di callback UseGrpc e GrpcWebHandler. Permette al client di comunicare in modo sicuro con il Babel Licensing Service usando il protocollo gRPC Web su HTTPS. GrpcWebHandler è configurato con un HttpClientHandler personalizzato che include il certificato client e, ai fini dello sviluppo, accetta qualsiasi certificato del server.

In un ambiente di produzione assicurati di gestire e proteggere correttamente i certificati, impostando AllowInvalid su false e rimuovendo ServerCertificateCustomValidationCallback dal codice client.

Con questa configurazione la tua applicazione client può connettersi al Babel Licensing Service tramite gRPC Web, con una comunicazione sicura ed efficiente tra il client e il servizio.

Last updated on