-- 配置 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 來源:簡書 著做權歸做者全部。商業轉載請聯繫做者得到受權,非商業轉載請註明出處。