From 1bb56fe14df92e5fe9c912a17be53ecf112f0de9 Mon Sep 17 00:00:00 2001 From: Ivan Zorin Date: Wed, 21 Aug 2024 07:59:59 +0300 Subject: [PATCH] Update Websocket.php --- src/Server/Protocols/Websocket.php | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/Server/Protocols/Websocket.php b/src/Server/Protocols/Websocket.php index 5192e1f..99a759d 100644 --- a/src/Server/Protocols/Websocket.php +++ b/src/Server/Protocols/Websocket.php @@ -66,6 +66,27 @@ class Websocket */ public const BINARY_TYPE_ARRAYBUFFER = "\x82"; + /** + * Имя класса Request. + * + * @var string + */ + protected static string $requestClass = Request::class; + + /** + * Получить или установить имя класса Request для рукопожатия. + * + * @param string|null $className + * @return string + */ + public static function requestClass(string $className = null): string + { + if ($className !== null) { + static::$requestClass = $className; + } + return static::$requestClass; + } + /** * Проверка целостности пакета. * @@ -330,7 +351,8 @@ public static function dealHandshake(string $buffer, TcpConnection $connection): $onWebSocketConnect = $connection->onWebSocketConnect ?? $connection->server->onWebSocketConnect ?? false; if ($onWebSocketConnect) { try { - $request = new Request($buffer); + /** @var Request $request */ + $request = new static::$requestClass($buffer); $request->connection = $connection; $connection->request = $request; $onWebSocketConnect($connection, $request);