CheckForUpdates
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
/osc/checkForUpdates
API는 클라이언트의 마지막으로 알려진 stateFingerprint
를 카메라의 현재 fingerprint
와 비교하여 상태 업데이트를 식별합니다.
이름 |
유형 |
설명 |
stateFingerprint |
문자열 |
클라이언트가 마지막으로 /osc/state 또는 /osc/checkForUpdates 를 호출한 시점의 카메라 상태 지문입니다. |
waitTimeout |
정수 (선택사항) |
응답을 반환하기 전에 카메라의 상태 변경이 발생하기를 기다리는 시간(초)입니다. waitTimeout 가 만료되면 지문이 변경되지 않았더라도 카메라에서 응답을 반환합니다. waitTimeout 이 만료되기 전에 상태 변경이 감지되거나 waitTimeout 가 생략된 경우 카메라는 즉시 응답을 반환해야 합니다.참고: 지문이 변경되지 않았더라도 waitTimeout 가 만료되기 전에 카메라에서 응답을 반환할 수 있지만 권장사항은 waitTimeout 가 만료될 때까지 기다리는 것입니다. |
카메라 구현 참고사항:
- 이 호출을 수신하면 카메라는 수신된
stateFingerprint
매개변수와 현재 상태 지문을 비교합니다. 지문이 변경된 경우, 카메라는 새 지문을 즉시 반환해야 합니다.
출력
이름 |
유형 |
설명 |
stateFingerprint |
문자열 |
카메라 상태의 새 지문입니다 (/osc/state API에서와 동일). |
throttleTimeout |
정수 |
클라이언트가 다음 checkForUpdates 호출 전에 대기하는 권장 시간(초)입니다. 클라이언트는 throttleTimeout 가 만료되기 전에 요청할 수 있으며 가능한 경우 카메라는 이러한 조기 요청을 허용해야 합니다. |
고객 구현 참고사항:
- 응답을 수신한 클라이언트는 수신된
stateFingerprint
를 사본과 비교해야 합니다. 일치하지 않는 경우 클라이언트는 _/osc/state
API를 사용하여 카메라의 현재 상태를 요청해야 합니다.
- 스마트 클라이언트는 카메라 응답에 관계없이 요청을 제한합니다. 예를 들어 카메라가 비표준 응답 (변경 없음 및 0
throttleTimeout)
이 즉시)을 반환하는 경우 클라이언트는 카메라에 또 다른 checkForUpdates
를 요청하기 전에 자체 throttleTimeout
를 적용해야 합니다.
카메라 구현 참고사항:
checkForUpdates
에 응답할 때 카메라는 적절한 throttleTimeout
를 결정해야 합니다. 카메라가 장기 요청 로직을 지원하는 경우 (상태가 변경되지 않은 경우 waitTimeout
후에만 응답) throttleTimeout
를 0
로 반환해도 됩니다. 이 경우 클라이언트가 업데이트를 즉시 요청할 수 있습니다.
- 카메라가 빠른 응답만 지원하는 경우 (권장되지 않음) 적절한
throttleTimeout
를 반환하여 클라이언트의 지속적인 요청/응답 트래픽을 피해야 합니다. 예를 들어 적당한 throttleTimeout
는 60초로, 분당 하나의 클라이언트 요청을 허용합니다.
- 카메라 기능에 적합한
throttleTimeout
를 반환하는 것이 권장사항입니다. 서버 문제로 인해 서버에서 적절한 throttleTimeout
를 확인할 수 없는 경우 카메라는 5XX 상태 코드와 serverError
오류 코드가 포함된 JSON 본문으로 응답합니다.
오류
오류 코드 |
설명 |
missingParameter |
stateFingerprint 가 지정되지 않았습니다. |
invalidParameterName |
하나 이상의 입력 매개변수 이름을 인식할 수 없습니다. |
invalidParameterValue |
매개변수 이름은 인식할 수 있지만 하나 이상의 값이 잘못되었습니다. 예를 들어 waitTimeout 가 범위를 벗어났거나 유형이 잘못되었습니다. |
serverError |
서버가 응답에 적절한 throttleTimeout 값을 결정할 수 없습니다. 서버 문제는 응답에 5XX 값이 반환되어 식별됩니다. 카메라 제조업체는 5XX 코드 및 이 오류를 발생시킬 수 있는 해당 서버 상태를 표로 제공해야 합니다. |
예 |
요청 |
POST /osc/checkForUpdates HTTP/1.1
Host: [camera ip address]:[httpUpdatesPort]
Content-Type: application/json;charset=utf-8
Accept: application/jsonContent-Length: {CONTENT_LENGTH}
X-XSRF-Protected: 1
{
"stateFingerprint": "12EGA33",
"waitTimeout": 300
} |
응답 |
HTTP/1.1 200 OK
Content-Type: application/json;charset=utf-8
Content-Length: {CONTENT_LENGTH}
X-Content-Type-Options: nosniff
{
"stateFingerprint": "12EGA86",
"throttleTimeout": 60
} |
요청 |
POST /osc/checkForUpdates HTTP/1.1
Host: [camera ip address]:[httpUpdatesPort]
Content-Type: application/json;charset=utf-8
Accept: application/jsonContent-Length: {CONTENT_LENGTH}
X-XSRF-Protected: 1
{
"stateFingerprint": "12EGA33",
"waitTimeout": 300
} |
응답 |
HTTP/1.1 400 Bad Request
Content-Type: application/json;charset=utf-8
Content-Length: {CONTENT_LENGTH}
X-Content-Type-Options: nosniff
{
"name": "camera.checkForUpdates",
"state": "error",
"error": {
"code": "missingParameter",
"message": "parameter stateFingerprint is missing."
}
} |
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
최종 업데이트: 2025-07-25(UTC)
[null,null,["최종 업데이트: 2025-07-25(UTC)"],[],["The `/osc/checkForUpdates` API checks for camera state changes. The client sends its `stateFingerprint` and an optional `waitTimeout`. The camera compares the received `stateFingerprint` with its current one, immediately returning the new fingerprint if changed. The camera also returns a `throttleTimeout` suggesting how long the client should wait before its next check. If the fingerprints match or after the wait time expires, a response is sent. Clients then request the current state if fingerprints don't match.\n"]]