diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2024-01-20 21:23:33 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2024-01-20 21:23:33 +0900 |
| commit | fcd7ffe95639ac74117e438ba68c5e3df7560dcb (patch) | |
| tree | efdcfe4387f6fd50d6ac5400a0835cbd2429acfc /packages/backend/src/server | |
| parent | Update Dockerfile (diff) | |
| download | sharkey-fcd7ffe95639ac74117e438ba68c5e3df7560dcb.tar.gz sharkey-fcd7ffe95639ac74117e438ba68c5e3df7560dcb.tar.bz2 sharkey-fcd7ffe95639ac74117e438ba68c5e3df7560dcb.zip | |
enhance(reversi): tweak reversi
Diffstat (limited to 'packages/backend/src/server')
| -rw-r--r-- | packages/backend/src/server/api/stream/channels/reversi-game.ts | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/packages/backend/src/server/api/stream/channels/reversi-game.ts b/packages/backend/src/server/api/stream/channels/reversi-game.ts index 2d8c396db9..c5d05e5cfb 100644 --- a/packages/backend/src/server/api/stream/channels/reversi-game.ts +++ b/packages/backend/src/server/api/stream/channels/reversi-game.ts @@ -46,7 +46,7 @@ class ReversiGameChannel extends Channel { case 'ready': this.ready(body); break; case 'updateSettings': this.updateSettings(body.key, body.value); break; case 'putStone': this.putStone(body.pos, body.id); break; - case 'syncState': this.syncState(body.crc32); break; + case 'heatbeat': this.heatbeat(body.crc32); break; } } @@ -83,15 +83,21 @@ class ReversiGameChannel extends Channel { } @bindThis - private async syncState(crc32: string | number) { + private async heatbeat(crc32?: string | number | null) { // TODO: キャッシュしたい const game = await this.reversiGamesRepository.findOneBy({ id: this.gameId! }); if (game == null) throw new Error('game not found'); if (!game.isStarted) return; - if (crc32.toString() !== game.crc32) { - this.send('rescue', await this.reversiGameEntityService.packDetail(game, this.user)); + if (crc32 != null) { + if (crc32.toString() !== game.crc32) { + this.send('rescue', await this.reversiGameEntityService.packDetail(game, this.user)); + } + } + + if (this.user && (game.user1Id === this.user.id || game.user2Id === this.user.id)) { + this.reversiService.heatbeat(game, this.user); } } |