这是本文档旧的修订版!
直播间集成
直播聊天室提供REST API形式的管理接口,下面是关于服务端直播聊天室的管理功能说明。
服务端介绍
直播聊天室是基于环信聊天室之上构建的功能,一个直播聊天室涉及聊天室、直播聊天室、直播场次三个概念。
聊天室
即环信的聊天室功能,每一个直播聊天室,都唯一对应一个聊天室(反过来不成立)。 直播聊天室复用了对应聊天室的所有资源,包括聊天室的成员列表等。
强烈不建议调用解散聊天室接口。将直播聊天室对应的聊天室解散,这将导致该直播聊天室数据遭到破坏、不完整等异常情况。
关于聊天室REST API,请参考聊天室管理。
直播聊天室
维护直播聊天室的ID、标题、描述、封面、进入是否需要密码等信息。
直播场次
直播聊天室是以直播场次为基本单位的。每开始一场新的直播,后台创建一个新的直播场次。
直播场次相关的信息包括该直播场次的ID、主播ID、直播开始时间、直播结束时间、直播状态,以及本场直播的点赞数量,观看人数等统计指标。
直播场次的状态:not_start:未开始;ongoing:正在进行中;completed:已结束,completed表示直播房间正常的直播结束,成员还留在直播聊天室中;closed:已关闭,closed表示强制关闭当前直播场次,成员会被踢出直播聊天室。
新建一个直播场次,之前的直播场次状态必须是completed 或者 closed,否则无法创建。新创建一个直播聊天室的同时,后台会自动创建一个直播场次。
直播聊天室的状态,是指直播聊天室的当前直播场次的状态。
主播
直播聊天室的主播,与该直播聊天室对应聊天室的群主是同一人。除了app管理员之外,只有主播才能创建直播聊天室。可以通过新建主播接口,为一个普通IM用户增加主播这个角色。
一个直播聊天室只能有一个主播,但可以有多个候选主播。候选主播可以不是聊天室的成员。可以通过关联接口,将一个主播与一个直播聊天室关联,关联后主播即成为该直播聊天室的候选主播。
您可以从直播聊天室的关联主播列表中,选择一个主播,通过调用“主播绑定直播聊天室”接口,将其变成聊天室的(正式)主播。
就像群主可以退出聊天室一样,主播也可以退出直播聊天室,但角色保留:他仍然是该直播聊天室的主播。
REST API
待补充
直播流地址
待补充
名称 | 请求 | 描述 |
---|---|---|
设置直播流地址 | /{org_name}/{app_name}/liverooms/stream_url | 待补充 |
获取某端直播流地址 | /{org_name}/{app_name}/liverooms/stream_url | 待补充 |
设置直播流地址
待补充
HTTP Request
/{org_name}/{app_name}/liverooms/stream_url |
---|
Request Headers
参数 | 说明 |
---|---|
Content-Type | application/json |
Authorization | Bearer ${token} |
Request Body
参数 | 说明 |
---|---|
不完整 | 不完整 |
Response Body
参数 | 说明 |
---|---|
pc_pull | PC端拉流地址 |
pc_push | PC端推流地址 |
mobile_pull | MOBILE端拉流地址 |
mobile_push | MOBILE端推流地址 |
请求示例
curl -X POST -H "Authorization: Bearer YWMti2bp0NdNEea6On9r7PFKfAAAAVq-FyjtBdvG8hGqmEStXoaECQBgCHIBaqo" "http://127.0.0.1:8080/easemob-demo/chatdemoui/liverooms/stream_url -d '{"pc_pull":"rtmp://publish3.cdn.ucloud.com.cn/ucloud","pc_push":"rtmp://vlive3.rtmp.cdn.ucloud.com.cn/ucloud","mobile_pull":"rtmp://publish3.cdn.ucloud.com.cn/ucloud","mobile_push":"rtmp://vlive3.rtmp.cdn.ucloud.com.cn/ucloud"}'"
可能返回的结果示例
返回值200,表示设置成功
{
"action": "post",
"application": "e1a09de0-0e03-11e7-ad8e-a1d913615409",
"uri": "http://127.0.0.1:8080/easemob-demo/chatdemoui/liverooms/stream_url",
"entities": [ ],
"data": {
"pc_pull": true,
"mobile_push": true,
"mobile_pull": true,
"pc_push": true
},
"timestamp": 1494084474885,
"duration": 1,
"organization": "easemob-demo",
"applicationName": "chatdemoui"
}
其他返回值待补充
如果返回结果是429、503或者其他5xx,有可能代表该接口被限流了,请稍微暂停一下并重试。详见接口限流说明
获取某端直播流地址
待补充
HTTP Request
/{org_name}/{app_name}/liverooms/stream_url |
---|
Request Headers
参数 | 说明 |
---|---|
Content-Type | application/json |
Authorization | Bearer ${token} |
Request Body
参数 | 说明 |
---|---|
不完整 | 不完整 |
Response Body
参数 | 说明 |
---|---|
不完整 | 不完整 |
请求示例
curl -X GET -H "Authorization: Bearer YWMti2bp0NdNEea6On9r7PFKfAAAAVq-FyjtBdvG8hGqmEStXoaECQBgCHIBaqo" "http://127.0.0.1:8080/easemob-demo/chatdemoui/liverooms/stream_url?type=mobile_pull"
可能返回的结果示例
返回值200,表示获取成功
{
"action": "get",
"application": "e1a09de0-0e03-11e7-ad8e-a1d913615409",
"params": {
"type": [
"mobile_pull"
]
},
"uri": "http://127.0.0.1:8080/easemob-demo/chatdemoui/liverooms/stream_url",
"entities": [ ],
"data": {
"mobile_pull": "rtmp://publish3.cdn.ucloud.com.cn/ucloud"
},
"timestamp": 1494084603633,
"duration": 1,
"organization": "easemob-demo",
"applicationName": "chatdemoui",
"count": 0
}
其他返回值待补充
如果返回结果是429、503或者其他5xx,有可能代表该接口被限流了,请稍微暂停一下并重试。详见接口限流说明
直播聊天室管理
待补充
名称 | 请求 | 描述 |
---|---|---|
创建直播聊天室 | /{org_name}/{app_name}/liverooms | 待补充 |
修改直播聊天室 | /{org_name}/{app_name}/liverooms/{liveroomid} | 待补充 |
获取直播聊天室详情 | /{org_name}/{app_name}/liverooms/{liveroomid} | 待补充 |
删除直播聊天室 | /{org_name}/{app_name}/liverooms/{liveroomid} | 待补充 |
分页获取直播聊天室列表 | /{org_name}/{app_name}/liverooms | 获取全部的直播聊天室列表,不区分直播聊天室状态 |
分页获取正在直播的直播聊天室列表 | /{org_name}/{app_name}/liverooms | 待补充 |
获取直播聊天室的直播状态 | /{org_name}/{app_name}/liverooms/${liveroomid}/status | 待补充 |
更新直播聊天室的直播状态 | /{org_name}/{app_name}/liverooms/${liveroomid}/status | 待补充 |
新建直播场次 | /{org_name}/{app_name}/liverooms/${liveroomid}/liveshows | 待补充 |
获取appkey下正在直播的直播聊天室列表 | /{org_name}/{app_name}/liverooms | 待补充 |
创建直播聊天室
在创建直播聊天室之前,必须首先设置直播流地址。
HTTP Request
/{org_name}/{app_name}/liverooms |
---|
Request Headers
参数 | 说明 |
---|---|
Content-Type | application/json |
Authorization | Bearer ${token} |
Request Body
参数 | 说明 |
---|---|
title | String类型,必填 |
desc | String类型,必填 |
anchor | String类型,必填 |
max_users | Integer类型,直播间最大人数 |
custom | String类型,用户自定义字段 |
need_password | Boolean类型,是否需要设置密码 |
password | String类型,密码 |
cover_picture_url | String类型,房间封面的图片URL |
start_time | Long类型,(预计)开始时间 |
end_time | Long类型,(预计)结束时间 |
Response Body
参数 | 说明 |
---|---|
liveroom_id | 生成的直播聊天室ID |
chatroom_id | 后台创建的直播聊天室ID |
请求示例
curl -X POST -H "Authorization: Bearer YWMti2bp0NdNEea6On9r7PFKfAAAAVq-FyjtBdvG8hGqmEStXoaECQBgCHIBaqo" -d '{"title":"test_liveroom_1","desc":"this is a test live room", "anchor":"z1"}' "http://127.0.0.1:8080/easemob-demo/chatdemoui/liverooms?status=ongoing"
可能返回的结果示例
返回值200,表示创建成功
{
"action": "post",
"application": "e1a09de0-0e03-11e7-ad8e-a1d913615409",
"params": {
"status": [
"ongoing"
]
},
"uri": "http://127.0.0.1:8080/easemob-demo/chatdemoui/liverooms",
"entities": [ ],
"data": {
"liveroom_id": "2",
"chatroom_id": "15399890518017",
"pc_pull_url": "rtmp://publish3.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_2_1",
"pc_push_url": "rtmp://vlive3.rtmp.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_2_1",
"mobile_pull_url": "rtmp://publish3.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_2_1",
"mobile_push_url": "rtmp://vlive3.rtmp.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_2_1"
},
"timestamp": 1494084880158,
"duration": 0,
"organization": "easemob-demo",
"applicationName": "chatdemoui"
}
其他返回值待补充
如果返回结果是429、503或者其他5xx,有可能代表该接口被限流了,请稍微暂停一下并重试。详见接口限流说明
修改直播聊天室
待补充
HTTP Request
/{org_name}/{app_name}/liverooms/{liveroomid} |
---|
Request Headers
参数 | 说明 |
---|---|
Content-Type | application/json |
Authorization | Bearer ${token} |
Request Body
参数 | 说明 |
---|---|
max_users | Integer类型, 直播间最大人数 |
max_users | Integer类型, 直播间最大人数 |
max_users | Integer类型, 直播间最大人数 |
max_users | Integer类型, 直播间最大人数 |
max_users | Integer类型, 直播间最大人数 |
Response Body
参数 | 说明 |
---|---|
不完整 | 不完整 |
请求示例
curl -X GET -H "Authorization: Bearer YWMti2bp0NdNEea6On9r7PFKfAAAAVq-FyjtBdvG8hGqmEStXoaECQBgCHIBaqo" "http://127.0.0.1:8080/easemob-demo/chatdemoui/liverooms/stream_url?type=mobile_pull"
可能返回的结果示例
返回值200,表示获取成功
{
"action": "get",
"application": "e1a09de0-0e03-11e7-ad8e-a1d913615409",
"params": {
"type": [
"mobile_pull"
]
},
"uri": "http://127.0.0.1:8080/easemob-demo/chatdemoui/liverooms/stream_url",
"entities": [ ],
"data": {
"mobile_pull": "rtmp://publish3.cdn.ucloud.com.cn/ucloud"
},
"timestamp": 1494084603633,
"duration": 1,
"organization": "easemob-demo",
"applicationName": "chatdemoui",
"count": 0
}
其他返回值待补充
如果返回结果是429、503或者其他5xx,有可能代表该接口被限流了,请稍微暂停一下并重试。详见接口限流说明