JavaScript библиотеки для gRPC-web¶
В Improbable и Google были разработаны свои собственные Javascript библиотеки для gRPC-web, и хотя в целом они схожи, существует два основных различия, из-за которых одна может быть предпочтительнее другой.
Первое отличие в том, что библиотека от Improbable, в отличие от библиотеки Google, поддерживает и XmlHttpRequest (XHR), и Fetch API для вызовов AJAX1.
Второе отличие в том, что только библиотека Improbable сама решает (основываясь на возможностях браузера), какой тип транспорта (XHR или Fetch) и какой режим gRPC-web (бинарный или base64). Это удобно, так как передача бинарных данных не поддерживается для серверных потоков.
На основании вышесказанного, в дальнейшем в книге будет использоваться библиотека от Improbable. Если вам интересна библиотека от Google, вы можете прочесть о ней здесь. Библиотека от Improbable доступна здесь.
С другой стороны, библиотека от Improbable не поддерживает дедлайны (но поддерживает отмену) и перехватчики. Если вам требуется реализовать перехватчики в JavaScript, вы должны использовать реализацию от Google и следовать этой инструкции для реализации перехватчиков.
Применение JavaScript библиотеки от Improbable, а также генерация заглушек для JavaScript/TypeScript будет рассмотрена в главе 12.
В заключение рассмотрим сходства и различия двух реализаций в таблице.
| Library | XHR | Fetch | Unary | Server Streaming | Client and Bidirectional Streaming |
|---|---|---|---|---|---|
| Improbable | ✔ | ✔ | ✔ | ✔ | ❌ |
| Google text | ✔ | ❌ | ✔ | ✔ | ❌ |
| Google binary | ✔ | ❌ | ✔ | ❌ | ❌ |
Дата создания : 24 июня 2023 г.