diff --git a/cli/ratchet/data.php b/cli/ratchet/data.php new file mode 100644 index 00000000..ae6314cd --- /dev/null +++ b/cli/ratchet/data.php @@ -0,0 +1,50 @@ +load(); + +$logger = new Logger('log'); +$logger->pushHandler(new StreamHandler(__DIR__.'/../../storage' . '/pchess.log', Logger::INFO)); + +$clientStorage = new RatchetClientStorage($logger); + +$parser = new CommandParser(new CommandContainer()); + +$webSocket = (new RatchetWebSocket($parser))->init($clientStorage); + +$loop = Factory::create(); + +$server = new Server("{$_ENV['WSS_ADDRESS']}:{$_ENV['WSS_DATA_PORT']}", $loop); + +$secureServer = new SecureServer($server, $loop, [ + 'local_cert' => __DIR__ . '/../../ssl/fullchain.pem', + 'local_pk' => __DIR__ . '/../../ssl/privkey.pem', + 'verify_peer' => false, +]); + +$limitingServer = new LimitingServer($secureServer, 50); + +$httpServer = new HttpServer(new WsServer($webSocket)); + +$ioServer = new IoServer($httpServer, $limitingServer, $loop); + +$ioServer->run(); diff --git a/cli/ratchet/wss_game.php b/cli/ratchet/game.php similarity index 100% rename from cli/ratchet/wss_game.php rename to cli/ratchet/game.php diff --git a/docker-compose.ratchet.yml b/docker-compose.ratchet.yml new file mode 100644 index 00000000..e979eb52 --- /dev/null +++ b/docker-compose.ratchet.yml @@ -0,0 +1,31 @@ +services: + chess_server_game: + build: + context: . + dockerfile: Dockerfile + user: 1000:1000 + container_name: chess_server_game + ports: + - ${WSS_GAME_PORT}:${WSS_GAME_PORT} + restart: always + volumes: + - ./:/usr/share/chess-server + - /usr/share/chess-server/vendor + - ./docker/php/8.2/cli/php.ini:/usr/local/etc/php/php.ini + working_dir: /usr/share/chess-server + command: ["php", "cli/ratchet/game.php"] + chess_server_data: + build: + context: . + dockerfile: Dockerfile + user: 1000:1000 + container_name: chess_server_data + ports: + - ${WSS_DATA_PORT}:${WSS_DATA_PORT} + restart: always + volumes: + - ./:/usr/share/chess-server + - /usr/share/chess-server/vendor + - ./docker/php/8.2/cli/php.ini:/usr/local/etc/php/php.ini + working_dir: /usr/share/chess-server + command: ["php", "cli/ratchet/data.php"]