改名
This commit is contained in:
+14
-26
@@ -14,6 +14,9 @@ trait TraitTransporter
|
|||||||
protected array $config;
|
protected array $config;
|
||||||
|
|
||||||
|
|
||||||
|
protected array $clients = [];
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param $config
|
* @param $config
|
||||||
* @return $this
|
* @return $this
|
||||||
@@ -48,24 +51,14 @@ trait TraitTransporter
|
|||||||
*/
|
*/
|
||||||
private function newClient(): Coroutine\Client|Client
|
private function newClient(): Coroutine\Client|Client
|
||||||
{
|
{
|
||||||
if (Context::inCoroutine()) {
|
$alias = $this->alias($this->config);
|
||||||
$client = $this->clientOnCoroutine($this->config);
|
$client = $this->clients[$alias] ?? null;
|
||||||
} else {
|
if (is_null($client)) {
|
||||||
$client = $this->clientNotCoroutine($this->config);
|
$client = Context::inCoroutine() ? new Coroutine\Client(SWOOLE_SOCK_TCP) : new Client(SWOOLE_SOCK_TCP);
|
||||||
|
$this->clients[$alias] = $client;
|
||||||
}
|
}
|
||||||
return $client;
|
[$host, $port] = [$this->config['ServiceAddress'], $this->config['ServicePort']];
|
||||||
}
|
if (!$client->isConnected() && !$client->connect($host, $port, 60)) {
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param $config
|
|
||||||
* @return Coroutine\Client
|
|
||||||
* @throws Exception
|
|
||||||
*/
|
|
||||||
private function clientOnCoroutine($config): Coroutine\Client
|
|
||||||
{
|
|
||||||
$client = new Coroutine\Client(SWOOLE_SOCK_TCP);
|
|
||||||
if (!$client->connect($config['ServiceAddress'], $config['ServicePort'], 60)) {
|
|
||||||
throw new Exception('connect fail.');
|
throw new Exception('connect fail.');
|
||||||
}
|
}
|
||||||
return $client;
|
return $client;
|
||||||
@@ -73,17 +66,12 @@ trait TraitTransporter
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param $config
|
* @param array $config
|
||||||
* @return Client
|
* @return string
|
||||||
* @throws Exception
|
|
||||||
*/
|
*/
|
||||||
private function clientNotCoroutine($config): Client
|
private function alias(array $config): string
|
||||||
{
|
{
|
||||||
$client = new Client(SWOOLE_SOCK_TCP);
|
return $config['ServiceAddress'] . '::' . $config['ServicePort'];
|
||||||
if (!$client->connect($config['ServiceAddress'], $config['ServicePort'], 60)) {
|
|
||||||
throw new Exception('connect fail.');
|
|
||||||
}
|
|
||||||
return $client;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user