Heartbeat lisensi dan verifikasi offline
Keduanya di Kebijakan lisensi, tetapi berbeda: seberapa sering menghubungi server saat online, dan berapa lama aplikasi boleh berjalan tanpa terhubung.
Interval: seberapa sering validasi
Isi Interval heartbeat (detik) dengan 600, SDK mengirim heartbeat sekitar setiap 10 menit saat berjalan. Setiap keberhasilan mengambil aturan terbaru dan memperbarui cache lisensi lokal.
Isi 600–86400 detik. Isi 0 mematikan heartbeat terjadwal. Aplikasi masih bisa memverifikasi atau memperbarui manual. Jadwal menambah penundaan acak 0–10%; interval tidak kurang dari 600 detik.
Dengan lisensi terikat perangkat dan cache valid, akses dipulihkan lalu diperbarui daring di latar belakang, meski timer mati. Lisensi wajib daring dan kursi mengambang menunggu server.
Durasi offline: lama penggunaan tanpa server
Mode offline punya tiga pilihan. Tidak mengubah interval heartbeat.
- Izinkan selama durasi tertentu
- Jika 24 jam, cache berlaku maksimal 24 jam sejak validasi online terakhir berhasil. Aplikasi tetap berjalan saat koneksi putus atau server sementara gagal dalam durasi itu. Sesudahnya, validasi online harus berhasil.
- Fallback offline dilarang
- Saat mulai, koneksi ke server harus berhasil; cache disk tidak meloloskan permintaan gagal. Tanda tangan sementara saat berjalan berlaku maksimal
max(10, 心跳间隔)detik; aplikasi harus terus memvalidasi dan memeriksa izin fitur. - Izinkan akses offline permanen
- Tanda tangan lokal dapat dipakai jangka panjang termasuk saat jaringan gagal. Lisensi 30 hari tetap habis setelah 30 hari; offline permanen tidak menjadikannya lisensi abadi.
API memakai offline_mode mewakili tiga pilihan ini, berurutan limited, none, permanent. Dengan durasi offline tertentu,offline_seconds adalah 1–31536000 detik; mode lain memakai 0.
Bagaimana kombinasi ini bekerja?
| Pengaturan heartbeat / offline | Perilaku nyata |
|---|---|
| 10 menit / 24 jam | Validasi tiap 10 menit saat online. Offline, maksimal 24 jam sejak validasi terakhir berhasil |
| 10 menit / offline permanen | Tetap mencoba heartbeat tiap 10 menit, memperbarui aturan jika berhasil dan memakai tanda tangan valid jika tak terjangkau. |
| 0 / offline permanen | Dengan cache sah, mulai tanpa permintaan terjadwal. Validasi atau refresh eksplisit tetap menghubungi server |
| 0 / 24 jam | Tanpa heartbeat terjadwal, cache tetap kedaluwarsa. Aplikasi menjadwalkan validasi; mematikan heartbeat tidak memperpanjang offline. |
Buat durasi offline lebih panjang daripada interval heartbeat. Jika heartbeat tiap jam tetapi offline hanya 1 menit, tanda tangan habis sebelum heartbeat berikutnya; aplikasi harus memvalidasi sendiri.
Apakah perubahan kebijakan memperbarui lisensi lama?
Ya. Menyimpan kebijakan menyinkronkan batas, fitur, kuota, model, pemeliharaan, dan versi ke semua lisensi terkait yang belum dicabut dalam satu transaksi. Tidak perlu menerapkan satu per satu lagi.
Sinkronisasi mempertahankan jenis masa, hari, aktivasi pertama, kedaluwarsa, pelanggan, pemakaian, dan perpanjangan pemeliharaan. Jenis masa kebijakan hanya untuk lisensi baru dan tidak mengubah lisensi 30 hari menjadi permanen.
Jika perangkat atau sesi masih aktif saat mengganti model, atau batas baru di bawah pemakaian saat ini, penyimpanan mengembalikan ACTIVE_DEVICES_CONFLICT, dan tidak ada pembaruan sebagian pada kebijakan atau lisensi terkait. Lepaskan perangkat yang berkonflik lalu simpan lagi.
Setelah tersimpan, lisensi lama dan baru yang terkait memakai aturan baru saat aktivasi, validasi, atau heartbeat berhasil berikutnya. SDK mengganti cache dengan tanda tangan baru. Percobaan ulang Idempotency-Key yang sama tetap mengembalikan hasil awal.
Perangkat offline tetap memakai aturan bertanda tangan yang lama. Tersambung kembali saja tidak mengubah cache; harus ada permintaan berhasil. Aplikasi dapat menyegarkan saat koneksi pulih.
Untuk memindahkan lisensi ke kebijakan lain, pilih di halaman Lisensi lalu pratinjau dengan Terapkan kebijakan. Saat mengedit kebijakan saat ini, cukup simpan untuk sinkronisasi otomatis.
Segarkan online langsung
Metode ini selalu mencoba server, meski offline permanen dan heartbeat mati. Berhasil memperbarui tanda tangan; gagal jaringan melaporkan error refresh tetapi menyimpan cache yang masih sah. Pencabutan atau pelepasan tegas menghapusnya.
| Bahasa | Cara memanggil |
|---|---|
| Go | client.RefreshOnline(ctx) |
| Java | client.refreshOnline() |
| C | ln_refresh_online(client) |
| C++ | client.RefreshOnline() |
| C# | await client.RefreshOnline() |
| Python | client.refresh_online() |
| JavaScript | await client.refreshOnline() |
Refresh berhasil dihitung satu permintaan aktivasi API. Jika kebijakan mengaktifkan heartbeat yang sebelumnya mati, panggil StartHeartbeat bahasa terkait untuk menjadwalkan. Perangkat offline tidak menerima pembaruan pencabutan atau pelepasan.