swoole / grpc

💎 Grpc client based on Swoole Coroutine
Apache License 2.0
199 stars 20 forks source link

GRPC断线重连问题 #16

Closed bnubobby closed 4 years ago

bnubobby commented 4 years ago

服务端意外断开链接后,客户端会卡死 跟踪代码,会以 client.php 里的 start 函数进入死循环, 看到swoole文档中说: 4.x 协程版本后,connected 属性不再会实时更新,isConnect 方法不再可靠

有什么解决办法吗

bnubobby commented 4 years ago

目前暂时的解决办法: 把 client.php 的start函数里,以下的判断去掉:

 if (!$this->client->connected)
   ....
  if (version_compare(SWOOLE_VERSION, '4.2.3', '<=')) 
   ....

原因: connected 属性不再会实时更新,不再可靠,当返回 fase的时候,直接重构http2client, 结果: 暂时能满足需求,正在进一步观察