HTTP/2 introduce alcune caratteristiche molto interessanti come pipeline, multiplexing e promesse push server; che da soli sono fantastici. In cambio, abbiamo sacrificato WebSockets.Utilizzo di una singola connessione HTTP/2 per comunicazioni bidirezionali (e simmetriche)
In teoria HTTP/2 consente la comunicazione bidirezionale tra server e client sotto forma di promesse push. Il server può inviare risposte al client prima ancora di essere richiesto. Ancora; eccezionale. Queste richieste però sono diverse dalle richieste del cliente.
Quindi la domanda a portata di mano:
C'è un modo per avere una singola/2 connessione HTTP che permette sia server che client di inviare messaggi arbitrari (punti extra per quelli binari) l'uno all'altro senza dover definire un protocollo diverso per il client inviato messaggi e server inviato messaggi?
WebSockets sono un ottimo esempio di ciò che sto cercando in quanto una delle due parti può avviare la connessione e quindi entrambi possono inviare messaggi.
Una soluzione che non interrompe HTTP/2 sarebbe l'ideale, ma l'abuso di protocollo è anche il benvenuto.
Grazie mille in anticipo.
ps. L'obiettivo di questo esercizio è capire se un protocollo di trasporto come GRPC, Thrift, ecc. Può essere progettato su HTTP/2 senza un'architettura server/client, ma dove entrambe le parti possono inviare e ricevere messaggi, quindi funzionalità come req/resp, pub/sub, rpc, ecc possono essere costruiti sopra.
grpc utilizza http2 per impostazione predefinita. http://www.grpc.io/docs/guides/wire.html – nibin012