改名
This commit is contained in:
@@ -1,44 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace Kiri\Rpc\Annotation;
|
|
||||||
|
|
||||||
use Annotation\Attribute;
|
|
||||||
use Http\Handler\Router;
|
|
||||||
use Kiri\Kiri;
|
|
||||||
|
|
||||||
#[\Attribute(\Attribute::TARGET_METHOD)] class JsonRpcMethod extends Attribute
|
|
||||||
{
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param string $method
|
|
||||||
*/
|
|
||||||
public function __construct(public string $method)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param mixed $class
|
|
||||||
* @param mixed|string $method
|
|
||||||
* @return mixed
|
|
||||||
* @throws \ReflectionException
|
|
||||||
*/
|
|
||||||
public function execute(mixed $class, mixed $method = ''): mixed
|
|
||||||
{
|
|
||||||
$reflect = Kiri::getDi()->getReflectMethod($class, $method);
|
|
||||||
$parent = $reflect->getDeclaringClass()->getAttributes(JsonRpc::class);
|
|
||||||
|
|
||||||
if (empty($parent)) {
|
|
||||||
return parent::execute($class, $method);
|
|
||||||
}
|
|
||||||
/** @var JsonRpc $attribute */
|
|
||||||
$attribute = $parent[0]->newInstance();
|
|
||||||
Router::addService($attribute->service, function () use ($class, $method) {
|
|
||||||
Router::jsonp($this->method, [di($class), $method]);
|
|
||||||
}, $attribute->version);
|
|
||||||
return parent::execute($class, $method); // TODO: Change the autogenerated stub
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace Kiri\Rpc\Annotation;
|
|
||||||
|
|
||||||
use Annotation\Attribute;
|
|
||||||
use Kiri\Kiri;
|
|
||||||
use Kiri\Rpc\RpcManager;
|
|
||||||
use ReflectionException;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
#[\Attribute(\Attribute::TARGET_CLASS)] class RpcProduct extends Attribute
|
|
||||||
{
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param string $cmd
|
|
||||||
* @param string $protocol
|
|
||||||
*/
|
|
||||||
public function __construct(public string $cmd, public string $protocol)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param mixed $class
|
|
||||||
* @param mixed|string $method
|
|
||||||
* @return mixed
|
|
||||||
*/
|
|
||||||
public function execute(mixed $class, mixed $method = ''): mixed
|
|
||||||
{
|
|
||||||
$class = Kiri::getDi()->get($class);
|
|
||||||
|
|
||||||
RpcManager::addCmdHandler($this->cmd, [$class, $method], $this->protocol);
|
|
||||||
|
|
||||||
return parent::execute($class, $method); // TODO: Change the autogenerated stub
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -23,29 +23,30 @@ abstract class JsonRpcConsumers implements OnRpcConsumerInterface
|
|||||||
public Pool $pool;
|
public Pool $pool;
|
||||||
|
|
||||||
|
|
||||||
|
protected string $name = '';
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $service
|
|
||||||
* @param string $method
|
* @param string $method
|
||||||
* @param mixed $data
|
* @param mixed $data
|
||||||
* @param string $version
|
* @param string $version
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public function notify(string $service, string $method, mixed $data, string $version = '2.0'): void
|
public function notify(string $method, mixed $data, string $version = '2.0'): void
|
||||||
{
|
{
|
||||||
$config = $this->get_consul($service);
|
$config = $this->get_consul($this->name);
|
||||||
if (Context::inCoroutine()) {
|
if (Context::inCoroutine()) {
|
||||||
$client = $this->clientOnCoroutine($config);
|
$client = $this->clientOnCoroutine($config);
|
||||||
} else {
|
} else {
|
||||||
$client = $this->clientNotCoroutine($config);
|
$client = $this->clientNotCoroutine($config);
|
||||||
}
|
}
|
||||||
$client->send(json_encode(['jsonrpc' => $version, 'service' => $service, 'method' => $method, 'params' => $data]));
|
$client->send(json_encode(['jsonrpc' => $version, 'service' => $this->name, 'method' => $method, 'params' => $data]));
|
||||||
$client->recv(1);
|
$client->recv(1);
|
||||||
$client->close();
|
$client->close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $service
|
|
||||||
* @param string $method
|
* @param string $method
|
||||||
* @param mixed $data
|
* @param mixed $data
|
||||||
* @param string $version
|
* @param string $version
|
||||||
@@ -53,9 +54,9 @@ abstract class JsonRpcConsumers implements OnRpcConsumerInterface
|
|||||||
* @return mixed
|
* @return mixed
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public function get(string $service, string $method, mixed $data, string $version = '2.0', string $id = ''): mixed
|
public function get(string $method, mixed $data, string $version = '2.0', string $id = ''): mixed
|
||||||
{
|
{
|
||||||
$config = $this->get_consul($service);
|
$config = $this->get_consul($this->name);
|
||||||
if (Context::inCoroutine()) {
|
if (Context::inCoroutine()) {
|
||||||
$client = $this->clientOnCoroutine($config);
|
$client = $this->clientOnCoroutine($config);
|
||||||
} else {
|
} else {
|
||||||
@@ -64,7 +65,7 @@ abstract class JsonRpcConsumers implements OnRpcConsumerInterface
|
|||||||
|
|
||||||
if (empty($id)) $id = Number::create(time());
|
if (empty($id)) $id = Number::create(time());
|
||||||
|
|
||||||
$client->send(json_encode(['jsonrpc' => $version, 'service' => $service, 'method' => $method, 'params' => $data, 'id' => $id]));
|
$client->send(json_encode(['jsonrpc' => $version, 'service' => $this->name, 'method' => $method, 'params' => $data, 'id' => $id]));
|
||||||
$read = $client->recv();
|
$read = $client->recv();
|
||||||
$client->close();
|
$client->close();
|
||||||
return json_decode($read, true);
|
return json_decode($read, true);
|
||||||
|
|||||||
@@ -26,8 +26,6 @@ class RpcManager
|
|||||||
|
|
||||||
foreach ($lists as $reflection) {
|
foreach ($lists as $reflection) {
|
||||||
$methodName = $reflection->getName();
|
$methodName = $reflection->getName();
|
||||||
//
|
|
||||||
// $params = Kiri::getDi()->getMethodParameters($class, $methodName);
|
|
||||||
|
|
||||||
static::$_rpc[$name][$methodName] = [[$class, $methodName], null];
|
static::$_rpc[$name][$methodName] = [[$class, $methodName], null];
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user