改名
This commit is contained in:
+11
-20
@@ -450,11 +450,8 @@ class Server extends HttpService
|
|||||||
if (!in_array($config['type'], [self::HTTP, self::TCP, self::PACKAGE])) {
|
if (!in_array($config['type'], [self::HTTP, self::TCP, self::PACKAGE])) {
|
||||||
throw new Exception('Unknown server type(' . $config['type'] . ').');
|
throw new Exception('Unknown server type(' . $config['type'] . ').');
|
||||||
}
|
}
|
||||||
if (in_array($config['type'], $this->listenTypes)) {
|
if ($config['type'] == self::HTTP && !$this->swoole->getCallback('request')) {
|
||||||
return $this->swoole;
|
$this->onBindCallback('request', [make(OnRequest::class), 'onHandler']);
|
||||||
}
|
|
||||||
if ($config['type'] == self::HTTP) {
|
|
||||||
$this->onBind($newListener, 'request', [Snowflake::createObject(OnRequest::class), 'onHandler']);
|
|
||||||
} else {
|
} else {
|
||||||
$this->noHttp($newListener, $config);
|
$this->noHttp($newListener, $config);
|
||||||
}
|
}
|
||||||
@@ -467,40 +464,34 @@ class Server extends HttpService
|
|||||||
/**
|
/**
|
||||||
* @param $newListener
|
* @param $newListener
|
||||||
* @param $config
|
* @param $config
|
||||||
* @throws NotFindClassException
|
|
||||||
* @throws ReflectionException
|
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
private function noHttp($newListener, $config)
|
private function noHttp($newListener, $config)
|
||||||
{
|
{
|
||||||
$this->onBind($newListener, 'connect', [Snowflake::createObject(OnConnect::class), 'onHandler']);
|
$this->onBindCallback('connect', [make(OnConnect::class), 'onHandler']);
|
||||||
$this->onBind($newListener, 'close', [Snowflake::createObject(OnClose::class), 'onHandler']);
|
$this->onBindCallback('close', [make(OnClose::class), 'onHandler']);
|
||||||
if ($config['type'] == self::TCP) {
|
if ($config['type'] == self::TCP) {
|
||||||
$this->onBind($newListener, 'receive', [$class = new OnReceive(), 'onHandler']);
|
$this->onBindCallback('receive', [make(OnReceive::class), 'onHandler']);
|
||||||
} else {
|
} else {
|
||||||
$this->onBind($newListener, 'packet', [$class = new OnPacket(), 'onHandler']);
|
$this->onBindCallback('packet', [make(OnPacket::class), 'onHandler']);
|
||||||
}
|
}
|
||||||
$class->host = $config['host'];
|
|
||||||
$class->port = $config['port'];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param $server
|
|
||||||
* @param $name
|
* @param $name
|
||||||
* @param $callback
|
* @param $callback
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
private function onBind($server, $name, $callback)
|
public function onBindCallback($name, $callback)
|
||||||
{
|
{
|
||||||
if (in_array($name, $this->listening)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
array_push($this->listening, $name);
|
|
||||||
if ($name === 'request') {
|
if ($name === 'request') {
|
||||||
$this->onLoadHttpHandler();
|
$this->onLoadHttpHandler();
|
||||||
}
|
}
|
||||||
$server->on($name, $callback);
|
if ($this->swoole->getCallback($name) !== null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$this->swoole->on($name, $callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+9
-16
@@ -51,7 +51,7 @@ class Service extends Component
|
|||||||
}
|
}
|
||||||
$this->debug(Snowflake::listen($service));
|
$this->debug(Snowflake::listen($service));
|
||||||
|
|
||||||
$this->addCallback($server, $mode);
|
$this->addCallback($mode);
|
||||||
|
|
||||||
$rpcServer = $server->addlistener($service['host'], $service['port'], $mode);
|
$rpcServer = $server->addlistener($service['host'], $service['port'], $mode);
|
||||||
$rpcServer->set($service['setting'] ?? [
|
$rpcServer->set($service['setting'] ?? [
|
||||||
@@ -76,28 +76,21 @@ class Service extends Component
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param $server
|
|
||||||
* @param $mode
|
* @param $mode
|
||||||
* @throws ReflectionException
|
|
||||||
* @throws NotFindClassException
|
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
private function addCallback($server, $mode)
|
private function addCallback($mode)
|
||||||
{
|
{
|
||||||
$app = Snowflake::app()->getServer();
|
|
||||||
|
|
||||||
$tcp = [SWOOLE_SOCK_TCP, SWOOLE_TCP, SWOOLE_TCP6, SWOOLE_SOCK_TCP6];
|
$tcp = [SWOOLE_SOCK_TCP, SWOOLE_TCP, SWOOLE_TCP6, SWOOLE_SOCK_TCP6];
|
||||||
|
|
||||||
if (in_array($mode, $tcp) && !$app->isListen(Server::TCP)) {
|
$server = Snowflake::app()->getServer();
|
||||||
$server->on('connect', [Snowflake::createObject(OnConnect::class), 'onHandler']);
|
$server->onBindCallback('connect', [make(OnConnect::class), 'onHandler']);
|
||||||
$server->on('close', [Snowflake::createObject(OnClose::class), 'onHandler']);
|
$server->onBindCallback('close', [make(OnClose::class), 'onHandler']);
|
||||||
$server->on('receive', [$class = new OnReceive(), 'onHandler']);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (in_array($mode, $tcp) || !$app->isListen(Server::PACKAGE)) {
|
if (in_array($mode, $tcp)) {
|
||||||
$server->on('connect', [Snowflake::createObject(OnConnect::class), 'onHandler']);
|
$server->onBindCallback('receive', [make(OnReceive::class), 'onHandler']);
|
||||||
$server->on('close', [Snowflake::createObject(OnClose::class), 'onHandler']);
|
} else {
|
||||||
$server->on('packet', [$class = new OnPacket(), 'onHandler']);
|
$server->onBindCallback('packet', [make(OnReceive::class), 'onHandler']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+14
-8
@@ -33,16 +33,22 @@ if (!function_exists('make')) {
|
|||||||
* @return mixed
|
* @return mixed
|
||||||
* @throws
|
* @throws
|
||||||
*/
|
*/
|
||||||
function make($name, $default): mixed
|
function make($name, $default = null): mixed
|
||||||
{
|
{
|
||||||
if (Snowflake::has($name)) {
|
if (class_exists($name)) {
|
||||||
$class = Snowflake::app()->$name;
|
return Snowflake::createObject($default);
|
||||||
} else if (Snowflake::has($default)) {
|
|
||||||
$class = Snowflake::app()->$default;
|
|
||||||
} else {
|
|
||||||
$class = Snowflake::createObject($default);
|
|
||||||
Snowflake::setAlias($name, $default);
|
|
||||||
}
|
}
|
||||||
|
if (Snowflake::has($name)) {
|
||||||
|
return Snowflake::app()->get($name);
|
||||||
|
}
|
||||||
|
if (empty($default)) {
|
||||||
|
throw new Exception("Unknown component ID: $name");
|
||||||
|
}
|
||||||
|
if (Snowflake::has($default)) {
|
||||||
|
return Snowflake::app()->get($default);
|
||||||
|
}
|
||||||
|
$class = Snowflake::createObject($default);
|
||||||
|
class_alias($name, $default, true);
|
||||||
return $class;
|
return $class;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user