FreeABC
记忆重叠

IM gateway 间歇性连接异常。

 

昨天测试 官方 Gateway client 总是间歇性连接失败抛异常;

getAllGatewayAddressesFromRegister fail. tcp://10.1.1.103:1236 return false

[8] ErrorException in Gateway.php line 843

未定义变量: data

  1. stream_set_timeout($client, 0.1);
  2. $ret = fgets($client, 655350);
  3. // var_dump($ret);
  4. if (!$ret || !$data = json_decode(trim($ret), true)) {
  5. // die("can not connect to getAllGatewayAddressesFromRegister");
  6. print_r('getAllGatewayAddressesFromRegister fail. tcp://' .
  7. self::$registerAddress . ' return ' . var_export($ret, true));
  8. }
  9. $last_update = $time_now;
  10. $addresses_cache = $data['addresses'];
  11. }
  12. return $addresses_cache;
  13. }
  14. }
  15. /**
  16. * 上下文 包含当前用户uid, 内部通信local_ip local_port socket_id ,以及客户端client_ip client_port
  17. */

解决方案:

 

搜索 protected static function getAllGatewayAddressesFromRegister()


$expiration_time = 1;

改为
$expiration_time = 3;

 
stream_set_timeout($client, 1);

改为

stream_set_timeout($client, 3);

 

问题解决!

主要是因为stream_socket_client 的超时时间设置过短,过早的断开了连接

未经允许不得转载:Free-Abc智能 » IM gateway 间歇性连接异常。
分享到: 更多 (0)