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, 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.
Pertukaran token didukung di siaran seluler dan web SDKs. Saat 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 — tanpa memerlukan sambungan ulang. picture-in-picture
Batasan: Pertukaran token hanya berfungsi dengan token yang dibuat di server Anda menggunakan key pair. Ini tidak berfungsi dengan token yang dibuat melalui CreateParticipantToken API.
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)
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 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. } }
Web
stage.on(StageEvents.STAGE_PARTICIPANT_METADATA_CHANGED, (participantInfo: StageParticipantInfo) => { // participantInfo properties will be updated with the changed 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 untuk peserta yang menggunakan seluler SDKs v1.37.0+, SDK web, dan komposisi sisi server. Peserta yang menggunakan ponsel lama SDKs tidak melihat perubahan sampai peserta tidak menerbitkan dan menerbitkan kembali.
Tabel ini menjelaskan matriks dukungan:
| Negara Peserta | Pengamat: SDK Seluler 1.37.0+, SDK Web, Komposisi Sisi Server | Pengamat: Ponsel Lama SDKs |
|---|---|---|
| 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) |