我使用 Google 的 gRPC 来处理服务器,但一段时间后我注意到流是在服务器上分配的,只有当我关闭我的应用程序时它们才会关闭。
GatewayGrpc.GatewayBlockingStub stub = getGatewayBlockingStub();
Gw.GetRequest request = new Gw.GetRequest();
request.authToken = authToken;
request.requestId = requestId;
Gw.GetResponse response = stub.get(request);
如何释放这个连接?
最佳答案
如果“数百个流”是指“数百个连接”,那么您可能没有关闭 ManagedChannel
。 getGatewayBlockingStub()
可能在内部创建一个 ManagedChannel
。您需要调用 ManagedChannel.shutdown()
。
通常 channel 会被重用。 channel 延迟初始化任何 TCP 连接,除非有新的 RPC,否则不会重新连接。
关于android - 在 Android 请求中使用 gRPC 时,在服务器上分配了数百个流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37617475/