Go to file
hailin 7b95711406 feat(android): 实现可靠的 gRPC 连接和流管理机制
基于 gRPC 官方最佳实践完整重构流管理系统

核心改进:
1. Keep-Alive 配置优化 (20s PING, 5s 超时, 永不超时空闲连接)
2. 创建 StreamManager 统一管理双向流生命周期
3. 实现自动重连机制 (Flow.retryWhen + 指数退避)
4. 添加 Android 网络状态监听 (立即 resetConnectBackoff)

技术细节:
- gRPC 流无法"恢复",必须重新发起 RPC 调用
- StreamManager 保存流配置,失败后自动重新发起
- 监听 GrpcConnectionEvent.Reconnected 触发流重启
- 删除旧的 callback 机制,使用 Flow 事件驱动

修复的关键问题:
- 网络断开后 eventStreamSubscribed flag 被清除导致 callback 不触发
- reSubscribeStreams 尝试"恢复"已关闭的 Flow (设计错误)
- 缺少 Keep-Alive 导致连接被中间设备清理
- 缺少网络监听导致 60 秒 DNS 解析延迟

参考资料:
- https://github.com/grpc/grpc-java/issues/8177
- https://grpc.io/docs/guides/keepalive/
- https://github.com/grpc/grpc-java/issues/4011

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-27 00:56:55 -08:00
.claude feat(android): 实现可靠的 gRPC 连接和流管理机制 2026-01-27 00:56:55 -08:00
backend feat(android): 实现可靠的 gRPC 连接和流管理机制 2026-01-27 00:56:55 -08:00
contracts feat(blockchain): 部署 eUSDT 和 fUSDT 代币合约 2026-01-19 05:30:25 -08:00
docs docs: 添加 RWADurian 2.0 部署与运维成本方案 2026-01-22 03:29:51 -08:00
frontend feat(batch-mining): 动态获取批量补发计算起始日期 2026-01-23 02:01:40 -08:00
kubernetes . 2025-11-25 10:29:24 +08:00
scripts fix(snapshot): 修改 Services PostgreSQL 用户名为 rwa_user 2026-01-08 09:05:22 -08:00
tests . 2025-11-25 10:29:24 +08:00
.gitignore feat(mining-ecosystem): 添加挖矿生态系统完整微服务与前端 2026-01-10 17:45:46 -08:00
README.md first commit 2025-11-23 21:21:44 -08:00
SEED01-qrcode.png fix: 短信超时返回成功状态避免前端报错 2025-12-21 20:55:31 -08:00
STKAITI.TTF feat(mobile-app): 添加合同签署 API 详细调试日志 2025-12-25 03:14:10 -08:00
contract.docx feat(kyc): 实名认证前检查手机号验证状态 2025-12-24 21:00:53 -08:00
docker-compose.yml first commit 2025-11-23 21:21:44 -08:00
挖矿.xlsx feat(contribution): 添加系统账户算力来源类型字段 2026-01-21 04:23:50 -08:00
榴莲皇后数据.xlsx fix(mobile-app): 修复多账号切换后账号列表只显示一个的问题 2025-12-27 11:12:50 -08:00
联合种植协议董事长_release_form.pdf fix(reporting-service): add /api/v1 prefix to wallet and reward service API calls 2026-01-04 23:18:10 -08:00

README.md