iT邦幫忙

2023 iThome 鐵人賽

DAY 14
0

終於說到第三個重要 WebRTC 重要 API RTCDataChannel,用於實現資料傳輸的 API。

什麼是 RTCDataChannel?

RTCDataChannel 是 WebRTC API 的一部分基於 SCTP 協議,允許瀏覽器之間建立數據通道,實現即時數據傳輸,包括遊戲、文件共享、聊天。這個 API 類似前面文章所介紹的 WebSocket,但有一些不同,WebSocket 用於一般的雙向通信,雖然也可以實現低延遲通信,但對即時性要求沒有那麼高,且需要額外的服務器。

SCTP (Stream Control Transmission Protocol)

SCTP代表"流控制傳輸協議"。它是與在 TCP 和 UDP 同個層級的傳輸層協議,允許多個數據流在單個連接上並行運行,作為底層傳輸協議的一部分。

RTCDataChannel 的特點

  • 使用點對點連接傳送數據,沒有經過伺服器、降低延遲
  • 使用 SCTP 傳輸協議,使用者可以設定如何傳送資料,也可以重新傳送丟失的數據。
    • 可靠且有序的模式:保證消息的傳輸以及它們被傳遞的順序。
    • 不可靠且無序的模式:不保證每條消息都能到達另一端,也不保證它們到達的順序。
    • 部分可靠模式在特定條件下保證消息的傳輸,例如重發超時或最大重發次數。消息的順序也是可配置的。

RTCDataChannel 的應用場景

RTCDataChannel 適用於許多應用場景,包括但不限於:

  • 即時聊天:實現即時消息傳輸,用於聊天應用程序。
  • 遊戲:在多人遊戲中實現玩家之間的數據通信。
  • 文件共享:用於在用戶之間傳輸文件或多媒體內容。
  • 協作工具:在協作應用程序中實現用戶之間的數據同步。
  • 遠程桌面控制:允許遠程操作和屏幕共享。

重點整理

  • RTCDataChannel 基於SCTP協議的底層傳輸 可以應用在即時聊天、遊戲、文件共享
  • SCTP傳輸協議:與TCP和UDP同級,提供多種傳輸模式,包括可靠有序、不可靠無序和部分可靠模式,以滿足不同需求

終於把 WebRTC 重要API 介紹完了,下篇就來介紹這個 API 該怎麼使用。


參考資料

WebRTC学习笔记四 RTCDataChannel - 知乎 (zhihu.com)
6.使用RTCDataChannel交换数据 - Real time communication with WebRTC (gitbook.io)
Send data between browsers with WebRTC data channels
RTCDataChannel - Web APIs | MDN (mozilla.org)


上一篇
[Day13] RTCPeerConnection - ICE RTCIceCandidate ICE 協議
下一篇
[Day15] RTCDataChannel - createDataChannel 發送和接收數據
系列文
前端工程師30天 WebRTC + Firebase 視訊通話原理到實作30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言