This commit is contained in:
xl
2023-05-26 18:26:45 +08:00
parent a42daff851
commit 29357fbfb9
+16
View File
@@ -4,9 +4,11 @@ namespace Kiri\Server\Abstracts;
use Exception; use Exception;
use Kiri\Abstracts\Component; use Kiri\Abstracts\Component;
use Kiri\Config\ConfigProvider;
use Kiri\Router\DataGrip; use Kiri\Router\DataGrip;
use Kiri\Router\Handler; use Kiri\Router\Handler;
use Kiri\Router\RouterCollector; use Kiri\Router\RouterCollector;
use Kiri\Server\Constant;
use Kiri\Server\Contract\OnCloseInterface; use Kiri\Server\Contract\OnCloseInterface;
use Kiri\Server\Contract\OnDisconnectInterface; use Kiri\Server\Contract\OnDisconnectInterface;
use Kiri\Server\Contract\OnHandshakeInterface; use Kiri\Server\Contract\OnHandshakeInterface;
@@ -40,6 +42,20 @@ class WebSocket extends Component implements OnHandshakeInterface, OnMessageInte
$this->collector = \Kiri::getDi()->get(DataGrip::class)->get('wss'); $this->collector = \Kiri::getDi()->get(DataGrip::class)->get('wss');
$this->handler = $this->collector->query('/', 'GET'); $this->handler = $this->collector->query('/', 'GET');
$config = \Kiri::getDi()->get(ConfigProvider::class);
if ($this->handler->implement(OnHandshakeInterface::class)) {
$config->modify('server.ports.events.' . Constant::HANDSHAKE, [$this->handler, 'onHandshake']);
}
if ($this->handler->implement(OnMessageInterface::class)) {
$config->modify('server.ports.events.' . Constant::MESSAGE, [$this->handler, 'onMessage']);
}
if ($this->handler->implement(OnDisconnectInterface::class)) {
$config->modify('server.ports.events.' . Constant::DISCONNECT, [$this->handler, 'onDisconnect']);
}
if ($this->handler->implement(OnCloseInterface::class)) {
$config->modify('server.ports.events.' . Constant::CLOSE, [$this->handler, 'onClose']);
}
} }