This commit is contained in:
2020-09-01 04:24:36 +08:00
parent 1c28ead926
commit 6cdb827416
2 changed files with 9 additions and 18 deletions
+7 -16
View File
@@ -115,12 +115,9 @@ class WebSocket extends Server
*/ */
protected function connect($request, $response) protected function connect($request, $response)
{ {
$manager = Snowflake::get()->event; /** @var AWebsocket $manager */
if ($manager->exists(Event::SERVER_HANDSHAKE)) { $manager = Snowflake::get()->annotation->get('websocket');
return $manager->trigger(Event::SERVER_HANDSHAKE, [$request, $response]); $manager->runWith($manager->getName(AWebsocket::HANDSHAKE), [$request, $response]);
}
$response->status(502);
$response->end();
return true; return true;
} }
@@ -154,14 +151,8 @@ class WebSocket extends Server
foreach ($headers as $key => $val) { foreach ($headers as $key => $val) {
$response->header($key, $val); $response->header($key, $val);
} }
if (isset($request->get['debug']) && $request->get['debug'] == 'test') {
$response->status(101);
$response->end();
return true;
} else {
return $this->connect($request, $response); return $this->connect($request, $response);
} }
}
/** /**
* @param Server $server * @param Server $server
@@ -170,14 +161,14 @@ class WebSocket extends Server
*/ */
public function onClose(Server $server, int $fd) public function onClose(Server $server, int $fd)
{ {
$event = Snowflake::get()->event;
try { try {
if ($event->exists(Event::SERVER_CLOSE)) { /** @var AWebsocket $manager */
$event->trigger(Event::SERVER_CLOSE, [$fd]); $manager = Snowflake::get()->annotation->get('websocket');
} $manager->runWith($manager->getName(AWebsocket::CLOSE), [$fd]);
} catch (\Throwable $exception) { } catch (\Throwable $exception) {
$this->application->addError($exception->getMessage()); $this->application->addError($exception->getMessage());
} finally { } finally {
$event = Snowflake::get()->event;
$event->trigger(Event::RELEASE_ALL); $event->trigger(Event::RELEASE_ALL);
Logger::insert(); Logger::insert();
} }
+1 -1
View File
@@ -52,7 +52,7 @@ class Websocket extends Annotation
* @param $comment * @param $comment
* @return false|string * @return false|string
*/ */
public function getName($events, $comment) public function getName($events, $comment = [])
{ {
$prefix = rtrim('WEBSOCKET:ANNOTATION:' . $events, ':'); $prefix = rtrim('WEBSOCKET:ANNOTATION:' . $events, ':');
if (isset($comment[2])) { if (isset($comment[2])) {