美文网首页WebRTC多媒体开发
配置 AppRtc 支持多人加入房间

配置 AppRtc 支持多人加入房间

作者: Gobert | 来源:发表于2017-10-15 20:19 被阅读641次

    -- 配置 AppRtc 支持多人加入房间

    基于 AppRtc 搭建的 webrtc 音视频通话默认只支持一对一的音视频通话,前期我们在没有开发出来自己的房间、信令服务器的情况下,要想开发测试多人音视频通话的话,就需要自己去修改 server 的相关配置, 以让其允许多人同时加入房间,否则 server 将返回房间已满的错误信息;对房间人数的限制有两方面, RoomServer 和 collider server,我们只需要将其对允许同时加入房间的人数进行相应的提高就行了,如改成 3 人:

    • 修改 RoomServer 对人数的限制

      修改 apprtc 编译生成的 out/app_engine/apprtc.py 文件,首先自定义一个全局变量,限定房间人数为 3:

      MAX_USER_COUNT = 3
      

      然后在新终端加入房间时使用此值进行判断,即:

      第 399 行:

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

      第 422 行:

          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 对人数的限制

      修改 apprtc 目录下 /src/collider/collider/room.go 文件,修改 maxRooCapacity 为 3,同 RoomServer 对人数的限制:

      const maxRoomCapacity = 3
      

      注:Collider 需要重新编译。

    最后,分别重启 RoomServer 和 Collider 既可,三人同时加入同一个房间 ID,将不再出现 Room Is Full 的报错,但是 客户端需要自己实现 多个 PeerConnection 去获取第三人的音视频数据并播放。

    相关文章

      网友评论

      • zk0301:“客户端需要自己实现 多个 PeerConnection 去获取第三人的音视频数据并播放”。请问android的客户端,需要怎么改。官方的例子,PeerConnectionClient写成了一个单例,是不是要改掉它。
        衡石程书:@信仰wuyh 您好,怎么修改的,能共享一下吗?526537207@qq.com
        5b6cfafa4931:@zk0301 hi,能把实现1对2的源码共享一下么?谢谢,18022174@qq.com
        zk0301:我改了一下PeerConnectionClient,大概实现了1对2。还要再优化一下。

      本文标题:配置 AppRtc 支持多人加入房间

      本文链接:https://www.haomeiwen.com/subject/dcacuxtx.html