Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
SDK Siaran IVS: Pertukaran Token | Streaming Waktu Nyata
Pertukaran token memungkinkan Anda untuk meningkatkan atau menurunkan kemampuan token peserta dan memperbarui atribut token dalam SDK siaran seluler, tanpa mengharuskan peserta untuk terhubung kembali. Ini berguna untuk skenario seperti co-hosting, di mana peserta dapat memulai dengan kemampuan berlangganan saja dan kemudian membutuhkan kemampuan publikasi.
Pembatasan:
Pertukaran token hanya berfungsi dengan token yang dibuat di server Anda menggunakan key pair. Ini tidak berfungsi dengan token yang dibuat melalui CreateParticipantToken API.
Jika Anda menggunakan pertukaran token untuk mengubah atribut yang mendorong server-side-composition tata letak (seperti featuredParticipantAttribute dan participantOrderAttribute), tata letak komposisi aktif tidak akan diperbarui hingga peserta tersambung kembali.
Bertukar Token
Pertukaran token sangat mudah: panggil exchangeToken API pada IVSStage objekStage/dan berikan token baru. Jika token baru berbeda dari token sebelumnya, kemampuan token baru segera dievaluasi. capabilities Misalnya, jika token sebelumnya tidak memiliki publish kemampuan dan token baru melakukannya, fungsi strategi panggung untuk penerbitan dipanggil, memungkinkan aplikasi host untuk memutuskan apakah mereka ingin segera mempublikasikan dengan kemampuan baru, atau menunggu. Hal yang sama berlaku untuk kemampuan yang dihapus: jika token sebelumnya memiliki publish kemampuan dan token baru tidak, peserta segera membatalkan publikasi tanpa menggunakan fungsi strategi panggung untuk penerbitan.
Saat bertukar token, token sebelumnya dan baru harus memiliki nilai yang sama untuk bidang payload berikut:
topicresourcejtiwhip_urlevents_url
Bidang ini tidak dapat diubah. Bertukar token yang memodifikasi bidang yang tidak dapat diubah menghasilkan SDK segera menolak pertukaran.
Bidang yang tersisa dapat diubah, termasuk:
attributescapabilitiesuser_idiatexp
iOS
let stage = try IVSStage(token: originalToken, strategy: self) stage.join() stage.exchangeToken(newToken)
Android
val stage = Stage(context, originalToken, strategy) stage.join() stage.exchangeToken(newToken)
Menerima Pembaruan
Fungsi diStageRenderer/IVSStageRenderermenerima pembaruan tentang peserta jarak jauh yang sudah dipublikasikan yang bertukar token mereka untuk memperbarui atau. userId attributes Peserta jarak jauh yang belum menerbitkan akan diperbarui userId dan attributes diekspos melalui fungsionParticipantJoined/participantDidJoinrenderer yang ada jika mereka akhirnya mempublikasikannya.
iOS
class MyStageRenderer: NSObject, IVSStageRenderer { func stage(_ stage: IVSStage, participantMetadataDidUpdate participant: IVSParticipantInfo) { // participant will be a new IVSParticipantInfo instance with updated properties. } }
Android
private val stageRenderer = object : StageRenderer { override fun onParticipantMetadataUpdated(stage: Stage, participantInfo: ParticipantInfo) { // participantInfo will be a new ParticipantInfo instance with updated properties. } }
Visibilitas Pembaruan
Saat peserta menukar token untuk memperbarui userId atauattributes, visibilitas perubahan ini bergantung pada status penerbitan mereka saat ini:
Jika peserta tidak menerbitkan: Pembaruan diproses secara diam-diam. Jika mereka akhirnya mempublikasikan, semua SDKs akan menerima yang diperbarui
userIddanattributessebagai bagian dari acara publikasi awal.Jika peserta sudah menerbitkan: Pembaruan disiarkan segera. Namun, hanya ponsel SDKs v1.37.0+yang menerima notifikasi. Peserta di SDK web, seluler yang lebih lama SDKs, dan komposisi sisi server tidak melihat perubahan sampai peserta tidak menerbitkan dan menerbitkan kembali.
Tabel ini menjelaskan matriks dukungan:
| Negara Peserta | Pengamat: SDK Seluler 1.37.0+ | Pengamat: Seluler Lama SDKs, SDK Web, Komposisi Sisi Server |
|---|---|---|
| Tidak menerbitkan (lalu dimulai) | ✅ Terlihat (saat dipublikasikan melalui acara yang bergabung dengan peserta) | ✅ Terlihat (saat dipublikasikan melalui acara yang bergabung dengan peserta) |
| Sudah menerbitkan (tidak pernah menerbitkan kembali) | ✅ Terlihat (segera melalui acara yang diperbarui metadata peserta) | ❌ Tidak Terlihat |
| Sudah menerbitkan (tidak menerbitkan dan menerbitkan kembali) | ✅ Terlihat (segera melalui acara yang diperbarui metadata peserta) | ⚠️ Akhirnya Terlihat (saat dipublikasikan ulang melalui acara yang bergabung dengan peserta) |