直播间场景实践
准备工作
在开始之前,请确保已创建应用并完成客户端 SDK 集成。
直播间状态管理
直播间状态通常包括:待开始、直播中、暂停、结束、回放中。直播间状态由业务侧进行维护。
游客模式
适用场景:未在业务册注册登录的用户进入直播间。
建议通过注册用户获取 Token 连接融云,并在业务侧限制游客是否可以发送消息。
创建并加入聊天室
- 应用服务端通过 Server API 创建聊天室,客户端获取聊天室 ID 后可加入聊天室。
- 默认同一用户不能同时加入多个聊天室,可在控制台启用单个用户加入多个聊天室。
- 加入聊天室时可通过客户端 SDK 获取最新的历史消息(默认 10 条,最多 50 条),您无法通过客户端 SDK 拉取指定的消息类型, 但可在控制台设置加入聊天室获取的指定消息。 如需拉取更多消息,可开启聊天室消息云存储。
示例代码:
- Server SDK in Java
- Server SDK in PHP
- Server SDK in Go
Java
RongCloud rongCloud = RongCloud.getInstance("appKey", "appSecret");
//自定义 api地址方式
//RongCloud rongCloud = RongCloud.getInstance(appKey, appSecret,api);
Chatroom chatroom = rongCloud.chatroom;
ChatroomDataModel chatroomDataModel = new ChatroomDataModel().setId("chatroomId3");
ResponseResult result2 = chatroom.createV2(chatroomDataModel);
System.out.println("createV2: " + result2.toString());
PHP
require "./../../RongCloud.php";
define("APPKEY", '');
define('APPSECRET','');
use RongCloud\RongCloud;
use RongCloud\Lib\Utils;
/**
* 创建聊天室
*/
function create()
{
$RongSDK = new RongCloud(APPKEY,APPSECRET);
$chatroom = [
['id'=> 'phpchatroom4',//聊天室 id
'name'=> 'phpchatroom1']//聊天室 name
];
$result = $RongSDK->getChatroom()->create($chatroom);
Utils::dump("创建聊天室",$result);
}
create();
Go
func TestRongCloud_ChatRoomCreateNew(t *testing.T) {
rc := NewRongCloud(
os.Getenv("APP_KEY"),
os.Getenv("APP_SECRET"),
)
// 创建聊天室
whiteUserIds := []string{"111", "222", "333"}
err := rc.ChatRoomCreateNew(
"chatroom001",
WithChatroomDestroyType(1),
WithChatroomDestroyTime(120),
WithChatroomIsBan(true),
WithChatroomWhiteUserIds(whiteUserIds),
)
t.Log(err)
}
常见问题:
- 客户端是否支持直接创建聊天室? 不支持,仅服务端可创建聊天室。
- 用户未加入聊天室也能发送消息? 默认允许,开启 SDK 用户不在聊天室中不能发送消息功能后,则需加入聊天室才能发送消息。
- 用户加入或退出聊天室时,其他聊天室成员是否有感知? 默认无感知,但您可以通过聊天室成员变化监听功能,开启后用户加入、退出聊天室后,向其他聊天室成员发送回调通知。您可以在控制台可以免费开启此功能,开启 15 分钟后生效。
- 用户多端登录时,其中 1 台设备退出聊天室后,别的设备不会同时退出吗? 默认不会。如您需其他端都退出,可以在控制台免费开启多端同时在线情况下,一端退出聊天室其他端也同步退出聊天室功能,开启 15 分钟后生效。
聊天室销 毁(聊天室保活)
- 聊天室具有自动销毁机制,默认 1 个小时内无用户加入或发送消息,会自动将聊天室内所有成员踢出并销毁聊天室,详见聊天室销毁机制。您可调整默认时间销毁时间,最长可设置 24 小时(针对整个 App 设置),设置方式详见调整聊天室销毁等待时间。您也可通过设置“自动销毁类型”来修改销毁时间 ,最长为 7 天 (针对指定聊天室设置),详见设置聊天室自动销毁类型。
- 如果您希望聊天室不会自动销毁,可开启聊天室保活服务。您最多可设置 5 个保活的聊天室,如需增加数量,请联系商务。服务开启 15 分钟后生效,详见保活聊天室。此服务在旗舰版需付费使用,尊享版免费使用。
- 如果您同时使用了音视频服务,可将聊天室绑定音视频房间。当聊天室达到预设的自动销毁条件时,系统会先检测已绑定的音视频房间(RTCRoomId)是否仍存在:如果绑定的音视频房间仍存在,则阻止聊天室自动销毁;如果绑定的音视频房间已销毁,则直接销毁聊天室。详见绑定音视频房间。