Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
IVS Broadcast SDK: Pertukaran Token | Streaming Real-Time
Pertukaran token memungkinkan Anda untuk meningkatkan atau menurunkan kemampuan token peserta dan memperbarui atribut token dalam SDK siaran, tanpa mengharuskan peserta untuk terhubung kembali. Ini berguna untuk skenario seperti co-hosting, di mana peserta dapat memulai dengan kemampuan khusus berlangganan dan kemudian membutuhkan kemampuan publikasi.
Pertukaran token didukung di SDK siaran seluler dan web. Ketika peserta bertukar token, komposisi sisi server mendeteksi atribut yang diperbarui secara real time dan secara otomatis menyesuaikan tata letak — misalnya, menetapkan kembali slot unggulan, menyusun ulang peserta, atau memindahkan peserta ke overlay gambar-dalam-gambar — tanpa memerlukan koneksi kembali.
Batasan: Pertukaran token hanya berfungsi dengan token yang dibuat di server Anda menggunakan pasangan kunci. Itu tidak berfungsi dengan token yang dibuat melalui CreateParticipantToken API.
Bertukar Token
Bertukar 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 memilikinya, fungsi strategi tahap untuk penerbitan dipanggil, memungkinkan aplikasi host untuk memutuskan apakah mereka ingin segera menerbitkan 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 penerbitan tanpa memanggil fungsi strategi tahap untuk penerbitan.
Saat menukar token, token sebelumnya dan baru harus memiliki nilai yang sama untuk bidang payload berikut:
topicresourcejtiwhip_urlevents_url
Bidang-bidang ini tidak dapat diubah. Menukar 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)
Web
const stage = new Stage(originalToken, strategy); await stage.join(); await stage.exchangeToken(newToken);
Menerima Pembaruan
Fungsi diStageRenderer/IVSStageRenderermenerima pembaruan tentang peserta jarak jauh yang sudah diterbitkan yang menukar token mereka untuk memperbarui atau merekauserId. attributes Peserta jarak jauh yang belum menerbitkan akan diperbarui userId dan diekspo attributes s melalui fungsionParticipantJoined/participantDidJoinrenderer yang ada jika mereka akhirnya mempublikasikan.
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. } }
Web
stage.on(StageEvents.STAGE_PARTICIPANT_METADATA_CHANGED, (participantInfo: StageParticipantInfo) => { // participantInfo properties will be updated with the changed properties } );
Visibilitas Pembaruan
Ketika peserta menukar token untuk memperbarui userId atau merekaattributes, visibilitas perubahan ini tergantung pada status penerbitan mereka saat ini:
Jika peserta tidak mener bitkan: Pembaruan diproses secara diam-diam. Jika mereka akhirnya menerbitkan, semua SDK akan menerima pembaruan
userIddanattributessebagai bagian dari acara penerbitan awal.Jika peserta sudah menerbitkan: Pembaruan disiarkan segera untuk peserta yang menggunakan SDK seluler v1.37.0+, SDK web, dan komposisi sisi server. Peserta yang menggunakan SDK seluler yang lebih lama tidak melihat perubahan sampai peserta membatalkan penerbitan dan merepublikasikannya.
Tabel ini mengklarifikasi matriks dukungan:
| Negara Peserta | Pengamat: SDK Seluler 1.37.0+, SDK Web, Komposisi Server-Side | Pengamat: SDK Seluler Lama |
|---|---|---|
| Tidak menerbitkan (kemudian dimulai) | ✅ Terlihat (saat dipublikasikan melalui acara yang bergabung dengan peserta) | ✅ Terlihat (saat dipublikasikan melalui acara yang bergabung dengan peserta) |
| Sudah menerbitkan (tidak pernah republik) | ✅ Terlihat (segera melalui acara yang diperbarui metadata peserta) | ❌ Tidak Terlihat |
| Sudah menerbitkan (tidak diterbitkan dan merepublikasikan) | ✅ Terlihat (segera melalui acara yang diperbarui metadata peserta) | ⚠️ Akhirnya Terlihat (saat diterbitkan ulang melalui acara yang bergabung dengan peserta) |