Topik ini membantu Anda memahami berbagai status koneksi saluran, alasan perubahan status, serta tindakan yang direkomendasikan.
Ikhtisar
Dalam skenario audio dan video real-time, status koneksi antara klien dan server berubah saat pengguna bergabung atau meninggalkan saluran. Status koneksi juga dapat berubah akibat masalah jaringan yang menyebabkan rekoneksi atau pemutusan. Oleh karena itu, manajemen yang efektif terhadap status koneksi saluran sangat penting karena secara langsung memengaruhi pengalaman audio dan video real-time pengguna serta stabilitas dan keandalan aplikasi secara keseluruhan.
Cara kerjanya
Status koneksi
Saat status koneksi berubah, ARTC SDK memicu callback onConnectionStatusChange. Gambar berikut menunjukkan berbagai status koneksi dan bagaimana mereka berubah saat pengguna bergabung dan meninggalkan saluran.
Rekoneksi otomatis
Selama panggilan, jika koneksi terputus karena masalah jaringan, SDK secara otomatis mencoba untuk menyambung kembali. Gambar berikut menunjukkan callback yang diterima oleh Pengguna A dan Pengguna B dalam proses berikut: Pengguna B sudah berada di saluran, Pengguna A bergabung dengan saluran, mengalami masalah jaringan, secara otomatis menyambung kembali, dan gagal menyambung kembali.
Pada T0: Pengguna A memulai permintaan
joinChannel.Pada T1: Pengguna A berhasil bergabung dengan saluran dan menerima callback
onJoinChannelResult(result=0)danonConnectionStatusChange.Pada T2: Pengguna B mendeteksi bahwa Pengguna A telah bergabung dengan saluran dan menerima callback
onRemoteUserOnLineNotify.Pada T3: Koneksi Pengguna A terputus karena pemutusan jaringan klien atau alasan lainnya.
Pada T4: SDK Pengguna A mendeteksi pemutusan jaringan atau tidak menerima data apa pun dari server selama periode waktu tertentu, memulai rekoneksi otomatis, dan Pengguna A menerima callback
onConnectionStatusChange.Pada T5: Setelah beberapa kali percobaan ulang dalam 100 detik, SDK masih tidak dapat bergabung kembali dengan saluran dan berhenti mencoba. SDK mengirimkan callback
onConnectionStatusChangekepada Pengguna A. Pada titik ini, pengguna perlu meninggalkan saluran saat ini, memeriksa jaringan lokal, dan bergabung kembali dengan saluran setelah jaringan kembali normal.
Kode contoh
Android
onConnectionStatusChange - Callback Perubahan Status Koneksi Jaringan
@Override
public void onConnectionStatusChange(AliRtcEngine.AliRtcConnectionStatus status, AliRtcEngine.AliRtcConnectionStatusChangeReason reason) {
super.onConnectionStatusChange(status, reason);
Log.e(TAG, "onConnectionStatusChange.");
ThreadUtils.runOnUiThread(new Runnable() {
@Override
public void run() {
if (mLogView != null) {
mLogView.logI("Status koneksi jaringan berubah menjadi: " + status + ", alasan: " + reason);
}
}
});
}IOS
onConnectionStatusChange - Callback Perubahan Status Koneksi Jaringan
/**
* @brief Callback perubahan status koneksi saluran
* @param status Nilai status saat ini, lihat enumerasi AliRtcConnectionStatus untuk nilai yang sesuai
* @param reason Alasan spesifik perubahan status, lihat enumerasi AliRtcConnectionStatusChangeReason untuk nilai yang sesuai
*/
- (void)onConnectionStatusChange:(AliRtcConnectionStatus)status reason:(AliRtcConnectionStatusChangeReason)reason{
NSString *stateStr = [NSString stringWithFormat:@"\nStatus jaringan: %@ status: %ld Alasan: %@ alasan: %ld\n",[self callbackNetstatus:status], (long)status,[self callbackNetstatusReason:reason], (long)reason];
MyLog(@"%@", stateStr);
}Windows
OnConnectionStatusChange - Callback Perubahan Status Koneksi Jaringan
void AliSDKEventListener::OnConnectionStatusChange(int status, int reason)
{
if (win_rtc_listener_)
{
win_rtc_listener_->OnConnectionStatusChange(status, reason);
}
}Deskripsi status
Status koneksi
Status koneksi | Deskripsi |
Init | Status awal, terjadi sebelum memanggil |
Connecting | Status sementara setelah memanggil metode |
Connected | Terjadi setelah aplikasi berhasil bergabung dengan saluran. SDK juga memicu callback |
Disconnected | Terjadi setelah memanggil |
Reconnecting | Terjadi saat koneksi terganggu. SDK secara otomatis mencoba menyambung kembali setelah gangguan. Jika berhasil bergabung kembali dengan saluran, SDK memicu onConnectionStatusChange (AliRtcConnectionStatusConnected, AliRtcConnectionChangedSignalingJoinChannelSuccess) |
Failed | Koneksi gagal. Terjadi saat SDK tidak dapat bergabung dengan saluran dalam 100 detik dan berhenti mencoba menyambung kembali. Pada titik ini, pengguna perlu memanggil |
Deskripsi alasan status
Status koneksi (status) | Deskripsi alasan status (reason) |
Init | Tidak ada alasan, status awal. |
Connecting | Menghubungkan: Bergabung dengan saluran. |
Connected | JoinChannelSuccess: Berhasil bergabung dengan saluran. |
Disconnected | LeaveRoom: Pengguna secara aktif meninggalkan saluran. |
Reconnecting |
|
Failed | JoinChannelFailure: Gagal bergabung atau bergabung kembali dengan saluran. Kemungkinan penyebab termasuk pemutusan jaringan yang berkelanjutan atau token tidak valid. |