兴趣是最大的老师 努力作的项目也是

初识

  • 它是 google 的产物
  • 她和restful有这天壤地别
  • 存在服务端客户端
  • 有着 json rpc 等变种
  • 基于 http/2 实现

初探

  • proto 文件作为 沟通的桥梁
  • 可以用 protoc 生成指定语言的 插件包

初试

nestjs 实现 服务端 客户端

服务端

客户端

xray 为目标 以 nestjs 入手

  • todo

获取 xray 源码

1
git clone --depth 1 https://github.com/XTLS/Xray-core.git

安装编译工具

1
2
# arch
pacman -S protoc
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 带有 _ 的变量会直接忽略掉

文档 warning

Q&A

grpcweb server 能不能运行在同一端口

伟大的 chat gpt 说可以 我还在尝试

参考