diff --git a/apps/server/src/domains/game/application/useCases/pingUseCase.ts b/apps/server/src/domains/game/application/useCases/pingUseCase.ts index c357d66..ef302f3 100644 --- a/apps/server/src/domains/game/application/useCases/pingUseCase.ts +++ b/apps/server/src/domains/game/application/useCases/pingUseCase.ts @@ -2,10 +2,11 @@ * pingUseCase * PING受信時に時刻情報付きPONGを返して遅延計測を支援する */ +import type { PingPayload } from "@repo/shared"; import type { GameOutputPort } from "../ports/gameUseCasePorts"; type PingUseCaseParams = { - clientTime: number; + clientTime: PingPayload; output: Pick; }; diff --git a/apps/server/src/network/validation/socketPayloadValidators.ts b/apps/server/src/network/validation/socketPayloadValidators.ts index beba0ee..0345b37 100644 --- a/apps/server/src/network/validation/socketPayloadValidators.ts +++ b/apps/server/src/network/validation/socketPayloadValidators.ts @@ -3,6 +3,7 @@ * ソケット受信ペイロードの型ガードを提供する */ import type { playerTypes, roomTypes } from "@repo/shared"; +import type { PingPayload } from "@repo/shared"; const isFiniteNumber = (value: unknown): value is number => { return typeof value === "number" && Number.isFinite(value); @@ -13,7 +14,7 @@ }; /** PINGイベントのペイロードが数値であるか判定する */ -export const isPingPayload = (value: unknown): value is number => { +export const isPingPayload = (value: unknown): value is PingPayload => { return isFiniteNumber(value); }; diff --git a/packages/shared/src/index.ts b/packages/shared/src/index.ts index f832b8e..9b04bc1 100644 --- a/packages/shared/src/index.ts +++ b/packages/shared/src/index.ts @@ -13,6 +13,7 @@ GameStartPayload, MovePayload, NewPlayerPayload, + PingPayload, PongPayload, RemovePlayerPayload, UpdateMapCellsPayload, diff --git a/packages/shared/src/protocol/events.ts b/packages/shared/src/protocol/events.ts index 5cb3b39..e6221bb 100644 --- a/packages/shared/src/protocol/events.ts +++ b/packages/shared/src/protocol/events.ts @@ -56,6 +56,9 @@ /** MOVE イベントで送受信する移動入力情報 */ export type MovePayload = PlayerMovePayload; +/** PING イベントで送受信する時刻同期リクエスト */ +export type PingPayload = number; + /** PONG イベントで送受信する時刻同期レスポンス */ export type PongPayload = { clientTime: number;