配置 AppRtc 支持多人加入房間

-- 配置 AppRtc 支持多人加入房間html

基於 AppRtc 搭建的 webrtc 音視頻通話默認只支持一對一的音視頻通話,前期咱們在沒有開發出來本身的房間、信令服務器的狀況下,要想開發測試多人音視頻通話的話,就須要本身去修改 server 的相關配置, 以讓其容許多人同時加入房間,不然 server 將返回房間已滿的錯誤信息;對房間人數的限制有兩方面, RoomServer 和 collider server,咱們只須要將其對容許同時加入房間的人數進行相應的提升就好了,如改爲 3 人:web

  • 修改 RoomServer 對人數的限制服務器

    修改 apprtc 編譯生成的 out/app_engine/apprtc.py 文件,首先自定義一個全局變量,限定房間人數爲 3:app

    MAX_USER_COUNT = 3

    而後在新終端加入房間時使用此值進行判斷,即:ide

    第 399 行:測試

    occupancy = room.get_occupancy()
        if occupancy >= MAX_USER_COUNT:
          error = constants.RESPONSE_ROOM_FULL
          break

    第 422 行:code

    if memcache_client.cas(key, room, constants.ROOM_MEMCACHE_EXPIRATION_SEC):
          logging.info('Added client %s in room %s, retries = %d' \
              %(client_id, room_id, retries))
    
          if room.get_occupancy() == MAX_USER_COUNT:
            analytics.report_event(analytics.EventType.ROOM_SIZE_2,
                                   room_id,
                                   host=request.host)
          success = True
          break

    第 595 行:視頻

    if room is not None:
          logging.info('Room ' + room_id + ' has state ' + str(room))
          if room.get_occupancy() >= MAX_USER_COUNT:
            logging.info('Room ' + room_id + ' is full')
            self.write_response('full_template.html')
            return
  • 修改對 Collider 對人數的限制server

    修改 apprtc 目錄下 /src/collider/collider/room.go 文件,修改 maxRooCapacity 爲 3,同 RoomServer 對人數的限制:htm

    const maxRoomCapacity = 3

    注:Collider 須要從新編譯。

最後,分別重啓 RoomServer 和 Collider 既可,三人同時加入同一個房間 ID,將再也不出現 Room Is Full 的報錯,可是 客戶端須要本身實現 多個 PeerConnection 去獲取第三人的音視頻數據並播放。

做者:Gobert 連接:https://www.jianshu.com/p/08040315f996 來源:簡書 著做權歸做者全部。商業轉載請聯繫做者得到受權,非商業轉載請註明出處。

相關文章
相關標籤/搜索