From abf1205e4c8d07bb17251a73e75ad64431af8be4 Mon Sep 17 00:00:00 2001 From: PsiMagistr Date: Thu, 29 May 2025 20:12:14 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=BD=D0=BE=D1=81=20?= =?UTF-8?q?=D1=81=D1=82=D1=80=D0=BE=D0=BA=20=D0=B2=20=D0=A5=D0=B5=D0=BD?= =?UTF-8?q?=D0=B4=D0=BB=D0=9A=D0=BE=D0=BD=D0=BD=D0=B5=D0=BA=D1=82=D0=B8?= =?UTF-8?q?=D0=BE=D0=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/game/instance/PlayerConnectionHandler.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/server/game/instance/PlayerConnectionHandler.js b/server/game/instance/PlayerConnectionHandler.js index 1b15d06..8bc9b5b 100644 --- a/server/game/instance/PlayerConnectionHandler.js +++ b/server/game/instance/PlayerConnectionHandler.js @@ -244,13 +244,14 @@ class PlayerConnectionHandler { if (oldSocket && oldSocket.id !== newSocket.id) { console.log(`[PCH ${this.gameId}] New socket ${newSocket.id} for player ${identifier}. Old socket: ${oldSocket.id}. Updating records.`); if (this.players[oldSocket.id]) delete this.players[oldSocket.id]; // Удаляем старую запись по старому socket.id + this.players[newSocket.id] = playerEntry; // Убеждаемся, что по новому ID есть актуальная запись if (oldSocket.connected) { // Пытаемся корректно закрыть старый сокет console.log(`[PCH ${this.gameId}] Disconnecting old stale socket ${oldSocket.id}.`); oldSocket.disconnect(true); } } playerEntry.socket = newSocket; // Обновляем сокет в существующей playerEntry - this.players[newSocket.id] = playerEntry; // Убеждаемся, что по новому ID есть актуальная запись + if (oldSocket && oldSocket.id !== newSocket.id && this.players[oldSocket.id] === playerEntry) { // Если вдруг playerEntry был взят по старому socket.id, и этот ID теперь должен быть удален delete this.players[oldSocket.id];