summaryrefslogtreecommitdiff
path: root/packages/backend/src/server/api/stream
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2024-01-20 21:23:33 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2024-01-20 21:23:33 +0900
commitfcd7ffe95639ac74117e438ba68c5e3df7560dcb (patch)
treeefdcfe4387f6fd50d6ac5400a0835cbd2429acfc /packages/backend/src/server/api/stream
parentUpdate Dockerfile (diff)
downloadsharkey-fcd7ffe95639ac74117e438ba68c5e3df7560dcb.tar.gz
sharkey-fcd7ffe95639ac74117e438ba68c5e3df7560dcb.tar.bz2
sharkey-fcd7ffe95639ac74117e438ba68c5e3df7560dcb.zip
enhance(reversi): tweak reversi
Diffstat (limited to 'packages/backend/src/server/api/stream')
-rw-r--r--packages/backend/src/server/api/stream/channels/reversi-game.ts14
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);
}
}