2011-03-16 3 views
2

가끔 메시지를 아이폰에 보내는 서버로 구성된 애플리케이션이 있습니다. 두 장치 간의 대기 시간은 문제가되는 도메인에서 중요합니다. 메시지가 도착하는 데 1 초도 걸리지 않으면 모든 것이 정상입니다. 5 초 이상 걸리면 거의 확실하게 문제가 발생합니다. 서버 측 메시지는 서버 시간으로 시간을 표시합니다.아이폰과 (웹) 서버 사이의 시간을 비교하는 방법은 무엇입니까?

셀룰러 데이터 연결을 사용하면 가끔 지연이 발생하지만 아이폰의 시계가 서버와 동기화된다는 보장이 없기 때문에 시간을 지연시킬 수는 없습니다. 우리의 테스트 용 전화 중 하나, 우리는 다른 통신사에 대해 다른 시간을 봅니다.

아이폰과 서버 사이의 시간을 동기화하는 간단한 방법이 있습니까? 저는 (NTP)를 보았습니다. NTP는 올바른 방법이라고 생각합니다.

어떤 대안이 있습니까? 밀리 초가 아닌 초 단위로 정확해야합니다.

답변

1

, 그래서이 아닌 해결책이 될 수 있지만 :

당신이 전화와 서버 사이의 대기 시간을 파악하려는 가정하면 (그리고 만이) 설정된 간격으로 (서버가 결정). 오류 검사가 서버 측에서 수행되었다고 가정하면 시계를 동기화하는 대신 "핑 (ping)"방법을 사용할 수도 있습니다.

  • 서버가 클라이언트 iPhone을 ping하고 스톱 워치를 시작합니다.
  • 클라이언트가 즉시 서버에 ping합니다.
  • 클라이언트 핑이 서버에 도달하면 서버는 스톱워치를 중지하고 시간을 확인합니다.

귀하의 문제를 잘못 이해 한 경우 사과드립니다.

1

글쎄, 다소 단순한 해결책은 전화기가 여러 시간에 서버 시간을 알려주고 델타 데이터베이스 테이블을 유지하도록 할 수 있다는 것입니다. 그런 다음보고 된 시간 소인을 서브의 시간 r +/- 델타로 조정하십시오. iPhone은 이동 통신사의 시간 서버에 동기화되어 있습니다. 다른 가능성은 매일 전화와 서버에 공통 시간 원본을 쿼리하게하는 것입니다. 단 하루 만에 시간이 많이 변하지는 않을 것입니다. 나는 정확한 상황이 무엇인지 확실하지 않다

관련 문제