房间状态同步

向客户服务端同步音视频通话的房间状态信息。包括:音视频通话过程中的房间创建、销毁、用户加入房间、用户退出房间、发布音视频资源。

开通方式

提示

如已开通服务端录像功能,则此功能默认为开通状态,服务端录像功能依赖于音视频房间状态同步功能,融云会将房间内所有信息同步到客户自备的录制服务器地址上。

如需要单独使用音视频状态同步功能,可提交工单申请开通,申请时需提交同步状态的目标应用服务器 URL 地址。融云会将房间内所有信息都同步给这个地址,开通 30 分钟后生效。接收状态地址示例:http://example.com/state_receive.php

对音视频状态同步消息的处理,可参考 Demo 快速集成。

HTTP 方法:POST

JSON 示例:

{
    "appKey":"XXXXXXX",
    "channelId":"xxxx",
    "event":1,
    "userId":"xxxx",
    "timestamp":2222222,
    "token":"xxxx",
    "extra":"xxxx",
    "members":
           [{
                "userId": "userid1",
                "data":{
                    "key1":"value1"
                 }
           },
           {
                "userId": "userid2",
                "data":{
                    "key2":"value2"
                }
           }]
}

表单参数:

名称 类型 说明
appKey String 应用 AppKey,开发者后台创建应用后获取
channelId String 房间号,频道唯一标识
event Int 事件:1 同步房间信息、2 房间创建、3 房间销毁、11 成员加入、12 成员退出、20 资源发生变动(发布资源或者取消发布资源)。
userId String 当前事件的用户 Id
timestamp Long 当前事件发生的时间戳
token String userId 所获取的 Token 用来订阅资源时验证请求合法性
extra String 备用字段
members Array 用户信息,只有在同步房间信息时,members 里的 member 列表才是全量的,其他事件都是对应事件中的 user 信息,比如 user1 资源发布,那 members 里的信息只有 user1 的资源信息

members 结构说明:

名称 类型 说明
userId String 用户 ID
data JSON 用户房间数据,key、value 均为 String 存储,这块定义了资源的标识信息。具体的定义见下面的标示。

members 中 data 定义了资源的标示,格式如下:

{
    "data":
       {
          "uris":
             [
                {
                   "tag":"XXX",
                   "msid":"XXX",
                   "mediaType":0,
                   "state":1,
                   "uri":"XXX"
                },
                {
                   "tag":"XXX",
                   "msid":"XXX",
                   "mediaType":1,
                   "state":1,
                   "uri":"XXX"
                }
             ]
       }
}

uris 为当前 user 资源集合,JSON 中结构说明如下:

参数名称 类型 说明
uris Array 资源集,当前 user 的资源集合
tag String 备用字段
msid String msid 资源 ID
mediaType Int 资源类型,0 音频,1 视频
state Int 资源 track 状态,0 关闭,1 开启
uri String 资源详细信息