← WebRTC 1.0 Spesifikasyonu

11–12. Hata İşleme ve Olay Özeti

W3C WebRTC 1.0 Spesifikasyonu — Türkçe Çeviri

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:

  1. init, kurucunun birinci argümanı olsun.
  2. message, kurucunun ikinci argümanı olsun.
  3. e, yeni bir RTCError nesnesi olsun.
  4. e için DOMException kurucusunu, message argümanı message olarak ve name argümanı "OperationError" olarak ayarlanmış şekilde çağır.
Bu adın eski bir koda eşlemesi yoktur, bu nedenle e.code 0 döndürür.
  1. init içinde mevcutsa e'nin tüm RTCError özniteliklerini karşılık gelen özniteliğin değerine ayarla; aksi halde null olarak ayarla.
  2. e'yi döndür.

11.1.2 Öznitelikler

errorDetail · RTCErrorDetailType · salt okunur

Meydana gelen hata türü için WebRTC'ye özgü hata kodu.

sdpLineNumber · long · salt okunur · null olabilir

errorDetail "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 olabilir

errorDetail "sctp-failure" ise, bu başarısız SCTP müzakeresinin SCTP neden kodudur.

receivedAlert · unsigned long · salt okunur · null olabilir

errorDetail "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 olabilir

errorDetail "dtls-failure" ise ve ölümcül bir DTLS uyarısı gönderildiyse, bu gönderilen DTLS uyarısının değeridir.

Risk Altındaki Özellik: 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 okunur

Olayı tetikleyen hatayı tanımlayan RTCError.

11.4 RTCErrorEventInit Sözlüğü

WebIDLdictionary RTCErrorEventInit : EventInit {
                          required RTCError error;
                        };

11.4.1 RTCErrorEventInit Sözlüğü Üyeleri

error · RTCError

Olayla ilişkili hatayı tanımlayan RTCError (varsa).

12. Olay Özeti

Bu bölüm normatif değildir.

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.