兴趣是最大的老师 努力作的项目也是
初识
- 它是
google的产物 - 她和
restful有这天壤地别 - 存在
服务端与客户端 - 有着
json rpc等变种 - 基于
http/2实现
初探
- 用
proto文件作为沟通的桥梁 - 可以用
protoc生成指定语言的插件包
初试
以 nestjs 实现 服务端 客户端
- https://docs.nestjs.com/microservices/grpc
- https://github.com/nestjs/nest/blob/master/sample/04-grpc/
服务端
客户端
以 xray 为目标 以 nestjs 入手
- todo
获取 xray 源码
1 | git clone --depth 1 https://github.com/XTLS/Xray-core.git |
安装编译工具
1 | # arch |
1 | yarn global add protoc-gen-ts |
编译 proto 生成 扩展 文件
可能会有错误 具体讨论
1 | protoc -I=./Xray-core --ts_out=./Xray-core_ts ./**/*.proto |
备注
@grpc/proto-loader 与 有行为grpc.load 的 不太一样
这导致的结果就是 nestjs 中的 proto message 带有 _ 的变量会直接忽略掉

- https://docs.nestjs.com/microservices/grpc#client
- https://github.com/grpc/grpc-node/blob/master/packages/proto-loader/README.md
Q&A
grpc 和 web server 能不能运行在同一端口
