Могу ли я использовать чистый grpc (не grpc-web) во внешнем javascript?

Согласно https://grpc.io/blog/state-of-grpc-web/

В настоящее время невозможно реализовать HTTP/2 gRPC spec3 в браузере, так как просто нет браузерного API с достаточно точным контролем над запросами. Например: нет способа заставить использовать HTTP/2, и даже если бы он был, необработанные кадры HTTP/2 недоступны в браузерах.

Однако caniuse говорит, что большинство браузеров имеют реализацию http/2.

Все еще невозможно использовать чистый grpc во внешнем javascript? Если да, то почему?


person tokubi    schedule 14.12.2020    source источник


Ответы (1)


Как показывает эта страница caniuse, браузеры могут взаимодействовать с серверами HTTP/2. Но протокол gRPC не просто использует протокол HTTP/2, он использует HTTP/2 особым образом. Проблема в том, что браузеры не предоставляют API-интерфейсы JavaScript, необходимые для управления использованием HTTP/2 способами, требуемыми спецификацией gRPC. В частности, трейлеры являются важной частью протокола gRPC и обычно недоступны в браузерных API HTTP/2.

person murgatroid99    schedule 07.01.2021
comment
Спасибо за ответ! Есть ли какая-либо документация, объясняющая это? - person tokubi; 11.01.2021