改名
This commit is contained in:
@@ -31,23 +31,10 @@ class OnClose extends Callback
|
|||||||
public function onHandler(Server $server, int $fd)
|
public function onHandler(Server $server, int $fd)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
if ($server instanceof WServer) {
|
[$manager, $name] = $this->resovle($server, $fd);
|
||||||
if (!$server->isEstablished($fd)) {
|
if ($manager !== null && !$manager->has($name)) {
|
||||||
return;
|
|
||||||
}
|
|
||||||
$manager = Snowflake::get()->annotation->get('websocket');
|
|
||||||
$name = $manager->getName(AWebsocket::CLOSE);
|
|
||||||
} else if ($server instanceof HServer) {
|
|
||||||
$manager = Snowflake::get()->annotation->get('http');
|
|
||||||
$name = $manager->getName(Annotation::CLOSE);
|
|
||||||
} else {
|
|
||||||
$manager = Snowflake::get()->annotation->get('tcp');
|
|
||||||
$name = $manager->getName(Tcp::CLOSE);
|
|
||||||
}
|
|
||||||
if (!$manager->has($name)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
$manager->runWith($name, [$fd]);
|
$manager->runWith($name, [$fd]);
|
||||||
|
}
|
||||||
} catch (\Throwable $exception) {
|
} catch (\Throwable $exception) {
|
||||||
$this->addError($exception->getMessage());
|
$this->addError($exception->getMessage());
|
||||||
} finally {
|
} finally {
|
||||||
@@ -60,4 +47,29 @@ class OnClose extends Callback
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param $server
|
||||||
|
* @param $fd
|
||||||
|
* @return array|null
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
public function resovle($server, $fd)
|
||||||
|
{
|
||||||
|
if ($server instanceof WServer) {
|
||||||
|
if (!$server->isEstablished($fd)) {
|
||||||
|
return [null, null];
|
||||||
|
}
|
||||||
|
$manager = Snowflake::get()->annotation->get('websocket');
|
||||||
|
$name = $manager->getName(AWebsocket::CLOSE);
|
||||||
|
} else if ($server instanceof HServer) {
|
||||||
|
$manager = Snowflake::get()->annotation->get('http');
|
||||||
|
$name = $manager->getName(Annotation::CLOSE);
|
||||||
|
} else {
|
||||||
|
$manager = Snowflake::get()->annotation->get('tcp');
|
||||||
|
$name = $manager->getName(Tcp::CLOSE);
|
||||||
|
}
|
||||||
|
return [$manager, $name];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user