RTCDataChannel: close() 方法
RTCDataChannel.close() 方法用於關閉 RTCDataChannel。任何一方都可以呼叫此方法來發起通道關閉。
資料通道的關閉並非瞬時完成。關閉連線的大部分過程是非同步處理的;您可以透過監聽資料通道上的 close 事件來檢測通道何時已完成關閉。
呼叫此方法後發生的事件順序:
- 將
RTCDataChannel.readyState設定為closing。 - 建立一個後臺任務來處理以下剩餘步驟,並且
close()方法返回給呼叫者。 - 傳輸層處理任何已緩衝的訊息;協議層決定是傳送還是丟棄它們。
- 底層資料傳輸被關閉。
- 將
RTCDataChannel.readyState屬性設定為closed。 - 如果傳輸關閉時發生錯誤,則
RTCDataChannel會收到一個error事件,其name設定為NetworkError。 - 向通道傳送一個
close事件。
語法
js
close()
引數
無。
返回值
無(undefined)。
示例
js
const pc = new RTCPeerConnection();
const dc = pc.createDataChannel("my channel");
dc.onmessage = (event) => {
console.log(`received: ${event.data}`);
dc.close(); // We decided to close after the first received message
};
dc.onopen = () => {
console.log("datachannel open");
};
dc.onclose = () => {
console.log("datachannel close");
};
// Now negotiate the connection and so forth…
規範
| 規範 |
|---|
| WebRTC:瀏覽器中的即時通訊 # dom-rtcdatachannel-close |
瀏覽器相容性
載入中…