(grpc-web)python与js通信

前情: 在Web中用javascript显示,后端用python语言抒写,这跨着语言的桥需要grpc, 还要在web中显示,它就还额外需要envoy.

目录

1. windows系统 -> docker

2. docker -> envoy

 3. 配置envoy.yaml

 4. docker根据envoy.yaml配置运行envoy


grpc-web官方网址Basics tutorial | Web | gRPC

(grpc-web)python与js通信_第1张图片 1) 除了windows系统的其他系统好似可以直接安装envoy配置,可是windows系统它需要通过docker安装envoy。

windows系统 -> docker -> envoy

1. windows系统 -> docker

# 1. 安装WSL2 

# PowerShell里,右键单击并选择“以管理员身份运行”, 运行完命令重启计算机
$ wsl --install

# 2.安装 Docker Desktop for Windows

# 下载Docker Desktop Installer.exe   http://mirrors.aliyun.com/docker-toolbox/windows/docker-for-windows/stable/Docker%20Desktop%20Installer.exe?spm=a2c6h.25603864.0.0.51187515oC52RD
# 按提示安装





2. docker -> envoy

Installing Envoy — envoy 1.26.0-dev-68058f documentation (envoyproxy.io)

(grpc-web)python与js通信_第2张图片

 3. 配置envoy.yaml

1)github上下载grpc-web并解压

GitHub - grpc/grpc-web: gRPC for Web Clients

2)从xxx\grpc-web-master\net\grpc\gateway\examples里面整一份envoy.yaml

(grpc-web)python与js通信_第3张图片3) 把它拷贝到其他的地方,然后修改文件。

先来个官网的配置说明:

(grpc-web)python与js通信_第4张图片

 所以 假如 

  • browser程序所在电脑 ip 192.168.3.1
  • envoy代理的程序所在电脑 ip 192.168.3.2
  • 后台的程序所在电脑 ip 192.168.3.3


# 1. browser程序 代码里 http://192.168.3.2:8080


# 2. envoy.yaml里

(grpc-web)python与js通信_第5张图片

 # 3. 后台grpc 代码里

    server = grpc.server(futures.ThreadPoolExecutor(max_workers=10), options=options)
    ......
    server.add_insecure_port("192.168.3.3:8081")

 4. docker根据envoy.yaml配置运行envoy

例如 修改好的envoy.yaml 放在F:\\examples\\envoy.yaml

$ docker run --name envoy -p 9902:9902 -p 8080:8080 -v //f/examples/envoy.yaml:/envoy.yaml envoyproxy/envoy:dev-68058f53553065ada22b5476d598e0feefee8ef8 -c envoy.yaml

然后,在浏览器http://127.0.0.1:9901能看到

(grpc-web)python与js通信_第6张图片

 

你可能感兴趣的:(python,docker,envoy,grpc)