GRPC веб-клиент с угловой 6

Я работал с клиентом grpc .net и сервером grpc, созданным с помощью Java. Как я могу реализовать веб-клиент grpc на angular 6 с машинописью? Кроме того, как я могу создать прото файлы и набирать текст для машинописи? Я слежу за этим репо, но не могу генерировать прототипы.

5 ответов

Решение

Потратив некоторое время, я смог создать прототипы для машинописи, выполнив следующие действия:

  1. Скачать protobuf для Windows можно по этой ссылке. После распаковки файлов установите переменную path для protoc.exe
  2. установить пакеты npm npm install google-protobuf @types/google-protobuf grpc-web-client ts-protoc-gen --save
  3. После установки сгенерируйте файлы машинописи с помощью команды:protoc --plugin="protoc-gen-ts=absolute-path-to-your-project\node_modules\.bin\protoc-gen-ts.cmd" --js_out="import_style=commonjs,binary:${OUT_DIR}" --ts_out="service=true:${OUT_DIR}" your.proto
  4. Наконец, потребляйте его, как указано в этом репо.

Вы также можете заставить его работать, запустив:

npm install google-protobuf protoc ts-protoc-gen

Затем добавьте скрипт компиляции в ваш package.json:

"compile": "./node_modules/protoc/protoc/bin/protoc --plugin=protoc-gen-ts=./node_modules/.bin/protoc-gen-ts --js_out=import_style=commonjs,binary:src/app/proto-gen --ts_out=service=true:src/app/proto -I ./src/app/proto ./src/app/proto/**/*.proto",

Теперь вы можете скомпилировать.proto файлы в Сервис, используя:

npm run compile

Вы можете увидеть подход работает здесь:

https://github.com/kmturley/angular-nest-grpc

grpc/grpc-web доступен по адресу https://github.com/grpc/grpc-web

Невозможно использовать в Windows

"compile": "./node_modules/protoc/protoc/bin/protoc
--plugin=protoc-gen-ts=./node_modules/.bin/protoc-gen-ts --js_out=import_style=commonjs,binary:src/app/proto-gen --ts_out=service=true:src/app/proto -I ./src/app/proto ./src/app/proto/**/*.proto",

Я получил '.' не распознается как внутренняя или внешняя команда

Это отлично работает: package.json

"scripts": {
"compile": "node_modules\\protoc\\protoc\\bin\\protoc --plugin=protoc-gen-ts=node_modules\\.bin\\protoc-gen-ts.cmd --js_out=import_style=commonjs,binary:./proto/generated --ts_out=service=grpc-web:./proto/generated -I ./proto ./proto/*.proto"
}

npm запустить компиляцию

В Windows Решение с автоматическим:

  1. нпм я @ типы / google-protobuf --save-dev
  2. npm я google-protobuf --save
  3. npm я grpc-web-client --save
  4. npm i ts-protoc-gen --save

Или от 1 до 4 можно использовать эту команду: npm i @ types / google-protobuf google-protobuf grpc-web-client ts-protoc-gen --save

  1. Добавьте эту строку в package.json:

    "scripts": {

            "grpc:gen": "protoc --plugin=protoc-gen-ts=node_modules\\ts-protoc-gen\\bin\\protoc-gen-ts.cmd --js_out=import_style=commonjs,binary:proto\\out --ts_out=service=grpc-web:proto\\out proto\\greet.proto"
    

    }

  2. сгенерируйте ts файл с помощью этой команды npm run grpc:gen

код доступен здесь: Сервер для .net Core Клиент для angular

Другие вопросы по тегам