CheckForUpdates
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
/osc/checkForUpdates
API mengidentifikasi pembaruan status dengan membandingkan stateFingerprint
terakhir klien yang diketahui dengan fingerprint
kamera saat ini.
Nama |
Jenis |
Deskripsi |
stateFingerprint |
String |
Sidik jari status kamera sejak terakhir kali klien memanggil /osc/state atau /osc/checkForUpdates . |
waitTimeout |
Bilangan bulat (opsional) |
Jumlah detik untuk menunggu terjadinya perubahan status pada kamera sebelum menampilkan respons. Saat waitTimeout berakhir masa berlakunya, kamera akan menampilkan respons meskipun sidik jari belum berubah. Jika perubahan status terdeteksi sebelum waitTimeout berakhir, atau jika waitTimeout dihapus, kamera akan segera menampilkan respons.Catatan: kamera dapat menampilkan respons sebelum waitTimeout berakhir meskipun sidik jari belum berubah, tetapi praktik terbaik adalah menunggu hingga waitTimeout berakhir masa berlakunya. |
Catatan penerapan kamera:
- Setelah menerima panggilan ini, kamera akan membandingkan sidik jari statusnya saat ini dengan parameter
stateFingerprint
yang diterima. Jika sidik jari berubah, kamera harus segera mengembalikan sidik jari baru.
Output
Nama |
Jenis |
Deskripsi |
stateFingerprint |
String |
Sidik jari baru status kamera (sama seperti di /osc/state API). |
throttleTimeout |
Bilangan Bulat |
Jumlah detik yang disarankan bagi klien untuk menunggu sebelum panggilan checkForUpdates berikutnya. Klien dapat membuat permintaan sebelum masa berlaku throttleTimeout habis, dan kamera harus mengizinkan permintaan awal ini jika memungkinkan. |
Catatan penerapan klien:
- Setelah menerima respons, klien harus membandingkan
stateFingerprint
yang diterima dengan salinannya. Jika tidak cocok, klien harus meminta status kamera saat ini menggunakan _/osc/state
API.
- Klien cerdas akan men-throttle permintaan terlepas dari respons kamera. Misalnya, jika kamera menampilkan respons non-standar (langsung, tanpa perubahan dan
throttleTimeout)
rendah atau 0, klien harus menerapkan throttleTimeout
-nya sendiri sebelum meminta checkForUpdates
lain dari kamera.
Catatan penerapan kamera:
- Saat merespons
checkForUpdates
, kamera akan menentukan throttleTimeout
yang wajar. Jika kamera mendukung logika permintaan yang berlangsung lama (hanya merespons setelah waitTimeout
jika status belum berubah), Anda dapat menampilkan throttleTimeout
sebagai 0
. Dalam hal ini, klien bisa segera meminta pembaruan.
- Jika kamera hanya mendukung respons cepat (tidak direkomendasikan), kamera harus menampilkan
throttleTimeout
yang wajar untuk menghindari traffic permintaan/respons yang konstan dengan klien. Misalnya, throttleTimeout
yang wajar adalah 60 detik, untuk mengizinkan satu permintaan klien per menit.
- Praktik terbaik adalah menampilkan
throttleTimeout
yang sesuai dengan kemampuan kamera. Jika server tidak dapat menentukan throttleTimeout
yang sesuai karena masalah server, kamera harus merespons dengan kode status 5XX dan isi JSON yang berisi kode error serverError
.
Error
Kode error |
Deskripsi |
missingParameter |
stateFingerprint tidak ditentukan. |
invalidParameterName |
Satu atau beberapa nama parameter input tidak dikenal. |
invalidParameterValue |
Nama parameter dikenali, tetapi satu atau beberapa nilai tidak valid; misalnya, waitTimeout di luar rentang atau jenisnya salah. |
serverError |
Server tidak dapat menentukan nilai throttleTimeout yang sesuai untuk responsnya. Masalah server akan diidentifikasi melalui nilai 5XX yang dikembalikan dalam responsnya. Produsen kamera harus memberikan tabel kode 5XX dan status server yang sesuai yang dapat menampilkan error ini. |
Contoh |
Permintaan |
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
} |
Respons |
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
} |
Permintaan |
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
} |
Respons |
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."
}
} |
Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-07-25 UTC.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Informasi yang saya butuhkan tidak ada","missingTheInformationINeed","thumb-down"],["Terlalu rumit/langkahnya terlalu banyak","tooComplicatedTooManySteps","thumb-down"],["Sudah usang","outOfDate","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Masalah kode / contoh","samplesCodeIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 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"]]