Skip to content

@my-swu/simulator-client


@my-swu/simulator-client / lobbyServerClockOffsetMs

Function: lobbyServerClockOffsetMs() ​

lobbyServerClockOffsetMs(snapshot, receivedAtMs?): number | undefined

Defined in: packages/ts-sdk/src/resources/lobby-snapshot.ts:57

Estimates serverClock - localClock (ms) from a deadline-bearing snapshot.

Add the offset to Date.now() before comparing with absolute server deadlines such as autoStartDeadlineAtMs or a matchmaking acceptDeadlineAtMs. Returns undefined when the snapshot carries no serverNowMs (no deadline, or an older server).

Example:

ts
import { lobbyServerClockOffsetMs } from '@my-swu/simulator-client'
import type { LobbySnapshot } from '@my-swu/simulator-client'

export function autoStartRemainingMs(lobbySnapshot: LobbySnapshot) {
  const serverNowMs = Date.now() + (lobbyServerClockOffsetMs(lobbySnapshot) ?? 0)
  return (lobbySnapshot.autoStartDeadlineAtMs ?? serverNowMs) - serverNowMs
}

Parameters ​

snapshot ​

Example:

ts
import { lobbyServerClockOffsetMs } from '@my-swu/simulator-client'
import type { LobbySnapshot } from '@my-swu/simulator-client'

export function autoStartRemainingMs(lobbySnapshot: LobbySnapshot) {
  const serverNowMs = Date.now() + (lobbyServerClockOffsetMs(lobbySnapshot) ?? 0)
  return (lobbySnapshot.autoStartDeadlineAtMs ?? serverNowMs) - serverNowMs
}

LobbySnapshot

Snapshot that may carry serverNowMs.

receivedAtMs? ​

Example:

ts
import { lobbyServerClockOffsetMs } from '@my-swu/simulator-client'
import type { LobbySnapshot } from '@my-swu/simulator-client'

export function autoStartRemainingMs(lobbySnapshot: LobbySnapshot) {
  const serverNowMs = Date.now() + (lobbyServerClockOffsetMs(lobbySnapshot) ?? 0)
  return (lobbySnapshot.autoStartDeadlineAtMs ?? serverNowMs) - serverNowMs
}

number = ...

Local clock when the snapshot arrived.

Returns ​

number | undefined

Example ​

ts
import { lobbyServerClockOffsetMs } from '@my-swu/simulator-client'
import type { LobbySnapshot } from '@my-swu/simulator-client'

export function autoStartRemainingMs(lobbySnapshot: LobbySnapshot) {
  const serverNowMs = Date.now() + (lobbyServerClockOffsetMs(lobbySnapshot) ?? 0)
  return (lobbySnapshot.autoStartDeadlineAtMs ?? serverNowMs) - serverNowMs
}

Released under the MIT License.