1. 程式人生 > 其它 >編譯EasyRTC新版本採用ProtocolBuffer(pb)接收不同型別資料如何判斷?

編譯EasyRTC新版本採用ProtocolBuffer(pb)接收不同型別資料如何判斷?

ProtocolBuffer(pb)所做事情其實類似於xml、json,也就是把某種資料結構的資訊依照某種格式儲存起來,ProtocolBuffer(pb)效率高,支援多種程式語言。

在編譯EasyRTC新版本時,我們採用了ProtocolBuffer(pb)實現部分功能,其中在EasyRTC視訊通話接收訊息時,由於傳送檔案buffer格式問題,傳輸的資料不能經過封裝,所以檔案接收不能根據接收的type值進行判斷。

我們先講一下接收資訊和檔案的區別。

接受訊息資料如下:

接受檔案資料某個切片如下:

檔案和資訊的接收資料型別不同,因此我們需要設定系統根據資料型別進行判斷。

判斷接收資料型別執行資訊接收,參考程式碼如下:

//接收訊息處理
onReceiveMessageCallback = (event) => {
  this.receiveState = false
  this.fileTip = false
  if (typeof event.data === 'string' ? true : false){
    this.msgData.push(JSON.parse(event.data))
    this.getTipType('msg')
  }
  if (typeof event.data !== 'string' ? true : false){
    this.receiveBuffer.push(event.data) //將接收到的資料新增到接收快取裡
    this.receivedSize += event.data.byteLength; //設定當前接收檔案的大小
    let filesInfo = JSON.parse(JSON.stringify(this.filesData))
    if (this.receivedSize === filesInfo[0].size){
      const received = new Blob(this.receiveBuffer) //生成Blob檔案
      this.receiveBuffer = [] // 將快取資料置空
    }
    this.getTipType('file')
  }
}

EasyRTC在未來的運用中,將不僅僅適用於政府和企業視訊會議,還適用於各種大屏場景下的音視訊傳輸,如遠端教育培訓、多人通話以及室內監控等等,更多的專案使用場景,歡迎大家瞭解和測試,共同將EasyRTC的行業運用變得更加豐富。