android - 在 Android 请求中使用 gRPC 时,在服务器上分配了数百个流

标签 android grpc

我使用 Google 的 gRPC 来处理服务器,但一段时间后我注意到流是在服务器上分配的,只有当我关闭我的应用程序时它们才会关闭。

        GatewayGrpc.GatewayBlockingStub stub = getGatewayBlockingStub();
        Gw.GetRequest request = new Gw.GetRequest();
        request.authToken = authToken;
        request.requestId = requestId;
        Gw.GetResponse response = stub.get(request);

如何释放这个连接?

最佳答案

如果“数百个流”是指“数百个连接”,那么您可能没有关闭 ManagedChannelgetGatewayBlockingStub() 可能在内部创建一个 ManagedChannel。您需要调用 ManagedChannel.shutdown()

通常 channel 会被重用。 channel 延迟初始化任何 TCP 连接,除非有新的 RPC,否则不会重新连接。

关于android - 在 Android 请求中使用 gRPC 时,在服务器上分配了数百个流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37617475/

相关文章:

c# - 具有未加密 HTTP2 连接的 .Net Core 3.1 gRPC 客户端

android - Utils.bitmapToMat 崩溃的应用程序

具有已处理异常的 Android ACRA

android - 启动 logcat 时出现意外错误。尝试重新选择设备。] EO

grpc - grpc-go 中的 session 和远程 IP 地址

google-app-engine - 具有 GRPC 和 Cloud Endpoints 的 App Engine Flex 环境

Golang proto 文件管理和导入

node.js - 两个内部 Cloud Run node.js 微服务如何通过 gRPC 成功通信?

java - `Leaderboard` 选项卡未显示在 Google Play 游戏中,而 `Achievements` 选项卡存在

android - 全屏的相机显示/预览不保持纵横比 - 图像倾斜、拉伸(stretch)以适合屏幕