grpc请求的底层是http2,http2 stream 实质上是一种长连接,可以用whistle customerParser的方式进行抓包解包
- node >= 12, whistle >= 2.7.21
- npm i
- npm run dev
localhost:50051 custom-http:// enable://customParser
如果发现不能代理,需要配置一下switchomega,参考 avwo/whistle#266
这是一个 UnaryCall 的例子,
node ./examples/greeter_server.js
node ./examples/greeter_client.js
可以在Frames里面看到一应一答的传输帧
这是一个 stream 的例子,包括各种方向的stream,
node ./examples/route_guide/route_guide_server.js
node ./examples/route_guide/route_guide_client.js
可以在Frames里面看到长连接中每一帧的具体解包示例