2012-07-17 13 views
2

나는 실시간 시장 데이터를 수집하고이를 웹 프론트 엔드에 표시하는 웹 서비스를 운영하고 있습니다.클라이언트 측과 서버 측 시간 동기화

내 프론트 엔드 (jQuery)는 시계를 표시해야하며 서버 시계와 다소 동기화됩니다 (+ - 몇 초가 적당합니다).

나는 클라이언트가로드 할 때 서버가 제공하는 나머지 데이터와 함께 UTC 타임 스탬프를 전달할 생각을하고있었습니다.

그런 다음 타이머를 시작하고 1 초마다 표시된 시계를 증가시킵니다.

이것은 좋은 접근 방법입니까, 아니면 시간 서버를 사용하는 것이 더 좋습니까?

감사합니다.

+1

좋아 보인다 - 그래서, 당신의 "정확한"시간 T2 + (T1 T3)입니다. 잠시 다른 요청이없는 경우 클라이언트 측 타이머를 정정하도록 추가 요청을 할 수도 있습니다. –

+0

몇 초 동안 신경 쓰지 않는다면이 방법에 어떤 문제가 있습니까? – Bergi

+0

나는 아무것도 추측하지 않는다! 감사합니다 여러분 – user1094786

답변

9

네트워크 대기 시간을 고려해야합니다. 서버의 데이터가 즉시 사용자에게 표시되지 않습니다. Cristian algorithm :

  1. 클라이언트는 현재 클라이언트 시간 (T1)을 표시하고 서버에 요청을 보냅니다.
  2. 서버가 클라이언트에 시간 (T2)을 보냅니다.
  3. 클라이언트는 서버 응답을 수신하고 현재 시간을 다시 표시합니다 (T3).
  4. T3 - T1은 서버 및 후면 (RTT)으로 이동하는 데 필요한 총 시간 요청입니다. 이제 우리는 서버에서 클라이언트로 이동하는 데 그 시간의 절반 정도 소요된다고 가정 할 수 있습니다./2

가 더 읽기에 대한 clock synchronization algorithms on wikipedia

+0

+1, 몇 초가 좋다면 네트워크 대기 시간에 신경 쓰지 않아도됩니다. – Bergi

+0

우리는 그게 괜찮은지 모르겠습니다. 어쨌든, 모든 것을 쉽게 설명 할 수 있습니다 - 알고리즘은 매우 간단합니다. –

관련 문제