11. Hata İşleme
Bazı işlemler RTCError fırlatır veya tetikler. Bu, ek WebRTC'ye özgü bilgiler taşıyan bir
DOMException uzantısıdır.
11.1 RTCError Arayüzü
WebIDL[Exposed=Window]
interface RTCError : DOMException {
constructor(RTCErrorInit init, optional DOMString message = "");
readonly attribute RTCErrorDetailType errorDetail;
readonly attribute long? sdpLineNumber;
readonly attribute long? sctpCauseCode;
readonly attribute unsigned long? receivedAlert;
readonly attribute unsigned long? sentAlert;
};
11.1.1 Kurucular
constructor()
Aşağıdaki adımları çalıştırır:
init, kurucunun birinci argümanı olsun.message, kurucunun ikinci argümanı olsun.e, yeni birRTCErrornesnesi olsun.eiçinDOMExceptionkurucusunu,messageargümanımessageolarak venameargümanı"OperationError"olarak ayarlanmış şekilde çağır.
e.code 0 döndürür.
initiçinde mevcutsae'nin tümRTCErrorözniteliklerini karşılık gelen özniteliğin değerine ayarla; aksi haldenullolarak ayarla.e'yi döndür.
11.1.2 Öznitelikler
errorDetail · RTCErrorDetailType · salt okunurMeydana gelen hata türü için WebRTC'ye özgü hata kodu.
sdpLineNumber · long · salt okunur · null olabilirerrorDetail "sdp-syntax-error" ise, bu hata tespit edilen satır numarasıdır
(ilk satırın numarası 1'dir).
sctpCauseCode · long · salt okunur · null olabilirerrorDetail "sctp-failure" ise, bu başarısız SCTP müzakeresinin SCTP neden
kodudur.
receivedAlert · unsigned long · salt okunur · null olabilirerrorDetail "dtls-failure" ise ve ölümcül bir DTLS uyarısı alındıysa, bu
alınan DTLS uyarısının değeridir.
sentAlert · unsigned long · salt okunur · null olabilirerrorDetail "dtls-failure" ise ve ölümcül bir DTLS uyarısı gönderildiyse, bu
gönderilen DTLS uyarısının değeridir.
RTCError içinde tanımlanan tüm öznitelikler, uygulama
eksikliği nedeniyle risk altında olarak işaretlenmiştir (errorDetail,
sdpLineNumber, sctpCauseCode, receivedAlert ve
sentAlert). Bu, DOMException'dan miras alınan öznitelikleri kapsamaz.
11.1.3 RTCErrorInit Sözlüğü
WebIDLdictionary RTCErrorInit {
required RTCErrorDetailType errorDetail;
long sdpLineNumber;
long sctpCauseCode;
unsigned long receivedAlert;
unsigned long sentAlert;
};
RTCErrorInit'in errorDetail, sdpLineNumber,
sctpCauseCode, receivedAlert ve sentAlert üyeleri,
RTCError'daki aynı adlı özniteliklerle aynı tanımlara sahiptir.
11.2 RTCErrorDetailType Enum'u
WebIDLenum RTCErrorDetailType {
"data-channel-failure",
"dtls-failure",
"fingerprint-failure",
"sctp-failure",
"sdp-syntax-error",
"hardware-encoder-not-available",
"hardware-encoder-error"
};
| Enum değeri | Açıklama |
|---|---|
data-channel-failure |
Veri kanalı başarısız oldu. |
dtls-failure |
DTLS müzakeresi başarısız oldu veya bağlantı ölümcül bir hata ile sonlandırıldı.
message, hatanın niteliğine ilişkin bilgiler içerir. Ölümcül bir DTLS uyarısı alındıysa,
receivedAlert özniteliği alınan DTLS uyarısının değerine ayarlanır. Ölümcül bir DTLS
uyarısı gönderildiyse, sentAlert özniteliği gönderilen DTLS uyarısının değerine ayarlanır.
|
fingerprint-failure |
RTCDtlsTransport'un uzak sertifikası, SDP'de sağlanan parmak izlerinden hiçbiriyle
eşleşmedi. Uzak eş sertifikayı sağlanan parmak izleriyle eşleştiremiyorsa, bu hata üretilmez. Bunun
yerine, uzak eşten bir "bad_certificate" (42) DTLS uyarısı alınabilir ve bu da bir
"dtls-failure" ile sonuçlanır. |
sctp-failure |
SCTP müzakeresi başarısız oldu veya bağlantı ölümcül bir hata ile sonlandırıldı.
sctpCauseCode özniteliği SCTP neden koduna ayarlanır. |
sdp-syntax-error |
SDP söz dizimi geçerli değildir. sdpLineNumber özniteliği, söz dizimi hatasının tespit
edildiği SDP satır numarasına ayarlanır. |
hardware-encoder-not-available |
İstenen işlem için gerekli donanım kodlayıcı kaynakları mevcut değildir. |
hardware-encoder-error |
Donanım kodlayıcı, sağlanan parametreleri desteklememektedir. |
11.3 RTCErrorEvent Arayüzü
RTCErrorEvent arayüzü, bir RTCError'un olay olarak yükseltildiği durumlar için
tanımlanmıştır:
WebIDL[Exposed=Window]
interface RTCErrorEvent : Event {
constructor(DOMString type, RTCErrorEventInit eventInitDict);
[SameObject] readonly attribute RTCError error;
};
11.3.1 Kurucular
constructor()Yeni bir RTCErrorEvent oluşturur.
11.3.2 Öznitelikler
error · RTCError · salt okunurOlayı tetikleyen hatayı tanımlayan RTCError.
11.4 RTCErrorEventInit Sözlüğü
WebIDLdictionary RTCErrorEventInit : EventInit {
required RTCError error;
};
11.4.1 RTCErrorEventInit Sözlüğü Üyeleri
error · RTCErrorOlayla ilişkili hatayı tanımlayan RTCError (varsa).
12. Olay Özeti
12.1 RTCDataChannel Olayları
| Olay adı | Arayüz | Tetiklendiği durum |
|---|---|---|
open |
Event |
RTCDataChannel nesnesinin altında yatan veri taşıması kurulmuştur (veya yeniden
kurulmuştur). |
message |
MessageEvent |
Bir mesaj başarıyla alınmıştır. |
bufferedamountlow |
Event |
RTCDataChannel nesnesinin bufferedAmount değeri,
bufferedAmountLowThreshold değerinin üzerindeyken bu eşik değerine eşit ya da daha düşük
bir seviyeye düşer. |
error |
RTCErrorEvent |
Veri kanalı üzerinde bir hata meydana gelmiştir. |
closing |
Event |
RTCDataChannel nesnesi "closing" durumuna geçer. |
close |
Event |
RTCDataChannel nesnesinin altında yatan veri taşıması kapatılmıştır. |
12.2 RTCPeerConnection Olayları
| Olay adı | Arayüz | Tetiklendiği durum |
|---|---|---|
track |
RTCTrackEvent |
Belirli bir RTCRtpReceiver için yeni gelen medya müzakere edilmiştir ve bu alıcının
track özelliği, ilişkili tüm uzak MediaStream'lere eklenmiştir. |
negotiationneeded |
Event |
Tarayıcı, oturum müzakeresinin yapılması gerektiğini (yani createOffer çağrısını ve
ardından setLocalDescription işlemini) uygulamaya bildirmek ister. |
signalingstatechange |
Event |
Bağlantının [[SignalingState]] durumu değişmiştir. Bu durum
değişikliği, setLocalDescription veya setRemoteDescription çağrılarından
birinin yapılmasının sonucudur. |
iceconnectionstatechange |
Event |
RTCPeerConnection nesnesinin [[IceConnectionState]] durumu değişmiştir. |
icegatheringstatechange |
Event |
RTCPeerConnection nesnesinin [[IceGatheringState]] durumu değişmiştir. |
icecandidate |
RTCPeerConnectionIceEvent |
Yeni bir RTCIceCandidate betiğe sunulmuştur. |
connectionstatechange |
Event |
RTCPeerConnection.connectionState değeri değişmiştir. |
icecandidateerror |
RTCPeerConnectionIceErrorEvent |
ICE adayları toplanırken bir başarısızlık meydana gelmiştir. |
datachannel |
RTCDataChannelEvent |
Diğer eşin bir kanal oluşturmasına yanıt olarak betiğe yeni bir RTCDataChannel
gönderilmiştir. |
12.3 RTCDTMFSender Olayları
| Olay adı | Arayüz | Tetiklendiği durum |
|---|---|---|
tonechange |
RTCDTMFToneChangeEvent |
RTCDTMFSender nesnesi ya bir tonun çalımına yeni başlamıştır (tone
özniteliği olarak döndürülür) ya da toneBuffer içindeki tonların çalımı yeni sona
ermiştir (tone özniteliğinde boş bir değer olarak döndürülür). |
12.4 RTCIceTransport Olayları
| Olay adı | Arayüz | Tetiklendiği durum |
|---|---|---|
statechange |
Event |
RTCIceTransport durumu değişir. |
gatheringstatechange |
Event |
RTCIceTransport toplama durumu değişir. |
selectedcandidatepairchange |
Event |
RTCIceTransport için seçili aday çifti değişir. |
12.5 RTCDtlsTransport Olayları
| Olay adı | Arayüz | Tetiklendiği durum |
|---|---|---|
statechange |
Event |
RTCDtlsTransport durumu değişir. |
error |
RTCErrorEvent |
RTCDtlsTransport üzerinde bir hata meydana gelmiştir
("dtls-failure" veya "fingerprint-failure"). |
12.6 RTCSctpTransport Olayları
| Olay adı | Arayüz | Tetiklendiği durum |
|---|---|---|
statechange |
Event |
RTCSctpTransport durumu değişir. |