https://github.com/xizon/grpc-getting-started
Demonstration of the use of gRPC and front-end.
https://github.com/xizon/grpc-getting-started
envoy envoyproxy grpc grpc-web
Last synced: 12 months ago
JSON representation
Demonstration of the use of gRPC and front-end.
- Host: GitHub
- URL: https://github.com/xizon/grpc-getting-started
- Owner: xizon
- License: mit
- Created: 2023-03-13T15:03:50.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2023-09-25T09:29:10.000Z (over 2 years ago)
- Last Synced: 2025-03-25T13:11:35.183Z (about 1 year ago)
- Topics: envoy, envoyproxy, grpc, grpc-web
- Language: JavaScript
- Homepage: http://localhost:10005
- Size: 11.2 MB
- Stars: 4
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# gRPC Getting Started
Demonstration of the use of gRPC and front-end.

## (Ⅰ) Original tutorial (simple)
- [(original version)English Documentation](README_TUTORIAL.md)
- [(最初版)中文版说明文档](README_TUTORIAL_CN.md)
## (Ⅱ) How to use this repository
### Step 1: Run the Envoy proxy.
The **envoy.yaml** file configures Envoy to listen to browser requests at port `12345`, and forward them to port `9090`.
```sh
$ npm run proxy
```
### Step 2: User Interaction Test
- the NodeJS gRPC Service (port `9090`)
- the webpack server (port `10005`)
run following command to test:
```sh
$ npm run start
```
When these are all ready, you can open a browser tab and navigate to `http://localhost:10005`
### Step 3: (optional) Build proto files and client files
#### a) Run the following command to compile the `.proto` file and generate a `.js` file we can recognize.
```sh
$ npm run build:protos
```
#### b) Create client file
It will generate a js file `dist/client-main.js` and a html file `dist/index.html`
```sh
$ npm run build:client
```
## (Ⅲ) Create a API file
This file is to call with ``, which is used as the interface of gRPC API.
Execute the build command below, it will generate a js file `dist-api/api-main.js` and a html file `dist-api/index.html`
```sh
$ npm run build:api-prod
```
or
```sh
$ npm run build:api-dev
```
Next, Use `api-main.js` to call the interface and run following command:
```js
$ npm run proxy
$ npm run test:api
```
Visit `http://localhost:4002` to test, it will output in the console: **"Hello: string 1 string 2"**
## Licensing
Licensed under the [MIT](https://opensource.org/licenses/MIT).